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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~