oracle数据库报错 ORA-06553: PLS-306: 调用 'V' 时参数个数或类型错误


今天遇到一个项目升级后,执行SQL语句报错:ORA-06553:  PLS-306:  调用  'V'  时参数个数或类型错误。后来发现是数据表visit中缺乏相关字段。奇怪的是如果缺乏字段,向来是报错为:ORA-00904 XXX标识符不存在。这次缺报了这个一个阐述个数或类型错误。

后来怀疑是SQL语句中数据表别名的原因。修改别名为其他别名(例如“a”)之后就会得到正常的提示 XXX标识符不存在。估计是在SQL解析时的bug吧,将V.*当做一个函数或者存储过程去调用了,还匹配不上,结果就报错 “参数个数或者类型错误”

 1 select v.visit_id,
 2        v.patient_id,
 3        v.subspecialtymstr_id,
 4        v.admission_datetime,
 5        v.discharge_datetime,
 6        v.patient_type,
 7        v.visit_no,
 8        v.patient_class,
 9        v.admit_status,
10        v.wardmstr_id,
11        v.medical_condition,
12        v.bedmstr_id,
13        (select bm.bed_no from bedmstr bm where bm.bedmstr_id=v.bedmstr_id and bm.defunct_ind='N') bed_no,
14        v.nursing_level,
15        v.consult_status,
16        v.consult_careprovider_id,
17        v.admission_times,
18        v.blacklist_ind
19   from visit v;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM