这个简单的块怎么了? PL SQL

问题描述 投票:0回答:2

我正在尝试在TOAD上运行此简单的匿名块,但出现以下错误。有人能帮我吗?

这是代码:

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;

这应该循环到EDWH.EDWH_GDPR_CONFIG并将属性打印到dbms_output.put_line中。

这是我得到的错误:

[Error] Execution (10: 8): ORA-06550: row 10, column 8:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

   ( begin case declare exit for goto if loop mod null pragma
   raise return select update while with <an identifier>
   <identifier between quotes>
   <a bind variable> << continue close current delete fetch
   lock insert open rollback savepoint set sql execute commit
   forall merge pipe purge)
oracle plsql procedure
2个回答
1
投票

我相信您以错误的方式运行了脚本。它是一个PL / SQL脚本,因此可以通过按F9键或按TOAD工具栏中的“ 以脚本执行”按钮来运行它。

如果光标位于此代码中的某个位置(例如BEGIN上,然后按<Ctrl + Enter>,则将得到]

ORA-06550:第12行,第4列:PLS-00103:预期以下情况之一时遇到符号“文件结束”:(如果loop mod null pragma,则开始案例声明goto的退出与一起提高回报选择更新<

所以-以脚本运行。


0
投票

尝试在最后一个“ END”之后添加'/']

END LOOP;
END;
/

然后再次执行

© www.soinside.com 2019 - 2024. All rights reserved.