ORA查询无效编译项

--查询无效编译项
select owner, object_type, status, count(*) 
from dba_objects
where status='INVALID'
group by owner, object_type, status 
order by owner, object_type;

解决方式如下:
在这里插入图片描述

解决ORA-00911无效字符错误,可参考以下方法: - **去除多余的分号**:在使用`execute immediate`执行动态SQL时,分号属于多余字符,会导致报错。例如在PL/SQL中,以下代码编译通过但执行时会报ORA-00911错误: ```sql sql_code := 'insert into T_DVR_VOCABULARYITEMS values(sys_guid(),''0'',''Active'',''赵如鹏'',''0'',sysdate,sysdate,'''||voc_system_pid ||''',''' || voc_pid || ''','''|| code_pid||''');'; execute immediate sql_code; ``` 解决办法是去掉分号,修改为: ```sql sql_code := 'insert into T_DVR_VOCABULARYITEMS values(sys_guid(),''0'',''Active'',''赵如鹏'',''0'',sysdate,sysdate,'''||voc_system_pid ||''',''' || voc_pid || ''','''|| code_pid||''')'; execute immediate sql_code; ``` 因为分号只在SQL*Plus中作为SQL语句结束符有用,在`execute immediate`中应去除[^2]。 - **检查SQL语句**:对于`insert into`等SQL语句,要确保语法正确,没有多余或缺失的字符。例如在MyBatis的Mapper接口中,以下代码会报错: ```java @Insert( "insert into OCMREPORT.OCMREPORT_INIPOINTSGQ " + " (OCCUR_MKT,EXP_DATE,OCCUR_MONTH,CSJF,XHJF,CSCE,HJCS,CSZB,GQJF,FPJFJE,QCJE,FSDATE,HJGQ) " + " values " + " (#{point.occurMkt},#{point.expDate},#{point.occurMonth},#{point.csjf},#{point.xhjf},#{point.csce},0,0,#{point.gqjf},0,0,#{point.fsdate},0);") void insertPointsGqOne(@Param("point")OcmReportIniPointsGq point); ``` 需要检查语句中是否有多余的字符,像这里的分号可能就是多余的,应去除分号来保证语句正确[^1][^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值