【发布时间】:2020-01-09 09:50:39
【问题描述】:
我正在尝试在 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)
【问题讨论】:
-
除了下面的答案(请不要忘记将相关答案标记为正确!),首选项中可能还有一个选项可以将空行视为终止符,您可以禁用它并然后“执行”将按预期运行它。 (根据this answer on the toadworld forum,虽然这是指12.9;我很确定这个选项在早期版本中可用)。或者你可以从你的程序中删除空白行。
-
这也是一个很好的解决方案。我刚刚做到了。致其他用户:在执行/编译页面的 Toad 选项中禁用“将空行视为语句终止符”。