Скорее всего, ваш столбец (D.LOC
) имеет строковый тип.Итак, используйте ли
'&DEPTNO'
в кавычках в качестве переменной подстановки и введите 20
или &DEPTNO
в кавычках в качестве переменной подстановки и введите '20'
при появлении соответствующего запроса.
Редактировать:
В зависимости от данных, которыми вы поделились в комментарии ниже, вам необходимо заменить D.LOC
на D.DEPTNO
для WHERE D.LOC = '&DEPTNO'
, получая WHERE D.DEPTNO = '&DEPTNO'
, и вышеупомянутая проблема, возникшая из-за этого сопоставления (, то есть сопоставление между строкой двух значений и числовым, LOC и DEPTNO соответственно ), и получите запрос следующим образом:
SELECT E.EMPNO,
E.SAL,
D.DEPTNO,
D.DNAME,
D.LOC
FROM EMP E
JOIN DEPT D ON D.DEPTNO = E.DEPTNO
WHERE D.DEPTNO = '&DEPTNO';