Oracle弹出输入

时间:2016-04-08 08:26:07

标签: sql oracle

我试图在Oracle中执行弹出输入。我使用:DS.SPECIALISE:AD.STATUS作为输入。

但是一旦我提交了我的输入值,就会显示

  

ORA-00920:无效的关系运算符

并且无法生成输出。

这是我的SQL查询:

select DT.DOCTOR_ID, DT.NAME, AD.STATUS, DS.SPECIALISE
from DOCTOR_SPECIALISE DS
INNER JOIN DOCTOR DT
  on DS.DOCTOR_ID = DT.DOCTOR_ID
INNER JOIN AVAILABILITY_DATE AD
  on DT.DOCTOR_ID = AD.DOCTOR_ID
WHERE :DS.SPECIALISE
  AND :AD.STATUS;

我这样做了,但我不明白为什么我使用内连接无法生成数据。

Select DT.DOCTOR_ID, DT.NAME, AD.STATUS, DS.SPECIALISE from DOCTOR_SPECIALISE DS, DOCTOR DT, AVAILABILITY_DATE AD
WHERE :SPECIALISE=DS.SPECIALISE AND 
DT.DOCTOR_ID=DS.DOCTOR_ID AND :STATUS=AD.STATUS;

3 个答案:

答案 0 :(得分:0)

也许您需要以下内容:

Select DT.DOCTOR_ID, DT.NAME, AD.STATUS, DS.SPECIALISE
from DOCTOR_SPECIALISE DS
 INNER JOIN DOCTOR DT
  on DS.DOCTOR_ID = DT.DOCTOR_ID
 INNER JOIN AVAILABILITY_DATE AD
  on DT.DOCTOR_ID = AD.DOCTOR_ID
WHERE :SPECIALISE = DS.SPECIALISE
  AND :STATUS = AD.STATUS;

答案 1 :(得分:0)

我认为问题在于语法无效:

WHERE :DS.SPECIALISE
  AND :AD.STATUS;

之后:DS_SPECIALISE解析器期望关系运算符不是保留字AND

Aleksej上面的回答为你解决了这个问题

答案 2 :(得分:-1)

SELECT DT.DOCTOR_ID, DT.NAME, AD.STATUS, DS.SPECIALISE 
  FROM DOCTOR_SPECIALISE DS, DOCTOR DT, AVAILABILITY_DATE AD
 WHERE :SPECIALISE=DS.SPECIALISE 
   AND DT.DOCTOR_ID=DS.DOCTOR_ID 
   AND :STATUS=AD.STATUS;