TOAD中运行PL/SQL匿名块报错ORA-06550/PLS-00103求协助
解决TOAD中PL/SQL匿名块执行的ORA-06550/PLS-00103错误
嘿,我之前在TOAD里跑PL/SQL也遇到过一模一样的错误!这个ORA-06550搭配PLS-00103的报错,本质是数据库觉得你的代码还没写完就碰到了结尾,最常见的原因就是缺少PL/SQL块的终止符/。
为啥会报错?
Oracle的PL/SQL引擎需要用/来标记一个完整的PL/SQL单元结束,哪怕你的匿名块已经写了END;,没有这个/,数据库就会认为你还在输入代码,自然会报“遇到文件结束符”的错误。
修正后的代码
给你的代码末尾加上/就行,调整后的完整代码如下:
BEGIN FOR REC_CONF IN ( SELECT DISTINCT CONF.SCHEMA, CONF.TABELLA, CONF.CAMPO, CONF.TIPO_CAMPO, CONF.LUNG_CAMPO, CONF.CAMPO_ACCESSO FROM EDWH.EDWH_GDPR_CONFIG CONF WHERE UPPER(FLAG_CANC) = 'Y' AND UPPER(SCHEMA) = UPPER('EDWH') ORDER BY CONF.TABELLA, CONF.CAMPO ASC ) LOOP DBMS_OUTPUT.PUT_LINE (REC_CONF.TABELLA); END LOOP; END; /
额外提醒
- 别忘了开DBMS_OUTPUT显示:在TOAD的
View菜单里找到DBMS Output面板,点绿色加号连到当前会话,不然就算代码跑成功了,你也看不到打印的TABELLA内容。 - 可以先单独跑下子查询确认有没有数据:如果
EDWH.EDWH_GDPR_CONFIG里没有符合条件的记录,代码执行成功也不会有输出,可以先把括号里的SELECT单独跑一遍看看结果。
内容的提问来源于stack exchange,提问作者Jackwiper
相关产品推荐
相关产品推荐

