如何使用带有 SQL*Plus 的 PL/SQL 程序文件

How to use a PL/SQL procedure file with SQL*Plus

我想执行 .sql 文件中的 PL/SQL 过程。

我用 SQL*Plus 调用我的 .sql 文件:

@myfile.sql

这里是myfile.sql

declare 
    listTotal number := 0;
    nbrCommit number := 200;
begin
    select count(1) into listTotal from MKTMLF.TMP_ID_CLI_SUPPR;
    [... different updates here ....]
commit;
    if listTotal > nbrCommit THEN
        [... different updates here ....]
        commit;
    end if;
end;

当我将 PL/SQL 粘贴到 Oracle SQL 开发人员中时没问题,它告诉我 "Procedure PL/SQL finished" 但是当我使用 SQL*Plus 时它只显示给我一个数字

55

仅此而已!实际上我发现这些数字是我 file.sql.

中的行数

问题是什么?为什么在 Oracle SQL 开发人员和 SQL*Plus 中可以?

请在文件末尾添加正斜杠 /。这将要求客户 运行 代码。

后面的 / 是 sqlplus 和 sqlcl 寻找的东西,知道它是块的结尾,请 运行 上面的代码块。

在 SQLDEV 中,有一个智能解析器可以从语法上确定块的结尾以知道要执行什么。