ORA-00904: «PSTATUSTYPE»: неверный идентификатор 00904. 00000 - «% s: неверный идентификатор» * Причина: * Действие: Ошибка в строке: 67 Столбец: 11 - PullRequest
0 голосов
/ 31 мая 2018

Когда я пытаюсь запустить приведенный ниже SQL:

SELECT  
p_mv.created_by                            createby, 
from  pipeline             p_mv, 
pipeline             p_con, 

route route_s , 

 where  
    "pstatustype"='CTA'
     and
    case when pstatustype='CTA' then p_con.created_date
           when pstatustype='VAD' then route_s.orgn_vsl_arvl_date
           when pstatustype='ETA' then route_s.arrival_date
           else null -- default anyway
      end Between to_date('&1','DD-MON-YYYY:HH24:MI:SS')
              AND to_date('&2','DD-MON-YYYY:HH24:MI:SS');

Я получаю сообщение об ошибке для столбца psstatustype:

ORA-00904: " PSTATUSTYPE": неверный идентификатор
00904. 00000 -"% s: неверный идентификатор "
* Причина:
* Действие: Ошибка в строке: 67 Столбец: 11

psstatustype нет в конце БД.Я создаю это на лету для распределения случая под предложением где.Пожалуйста, помогите !!

С уважением, fuko

1 Ответ

0 голосов
/ 31 мая 2018

"это параметр."

Ваш опубликованный SQL искажен, так что это не рабочий пример (например, у вас есть перекрестное соединение без соединения)условия, поэтому он вернет декартово произведение).В любом случае он показывает, что вам нужно сделать:

SELECT  
     ....
from  pipeline             p_mv, 
      pipeline             p_con, 
      route route_s , 
 where  
    case '&pstatustype'
           when 'CTA' then p_con.created_date
           when 'VAD' then route_s.orgn_vsl_arvl_date
           when 'ETA' then route_s.arrival_date
           else null -- default anyway
      end 
      between to_date('&1','DD-MON-YYYY:HH24:MI:SS')
              AND to_date('&2','DD-MON-YYYY:HH24:MI:SS');

При этом используется синтаксис переменной подстановки SQL * Plus &pstatustype, который будет предлагать вводить значение при каждом запуске запроса.Разные клиенты могут требовать разные способы указания и заполнения параметров.

...