代码之家  ›  专栏  ›  技术社区  ›  LeleDumbo

sqlplus未终止SQL脚本

  •  6
  • LeleDumbo  · 技术社区  · 16 年前

    我有一份文件,上面写着:

    BEGIN
        ...
        a bunch of inserts
        ...
        COMMIT;
    
    EXCEPTION
        WHEN OTHERS THEN ROLLBACK;
    END;
    

    当我在sqlplus中执行此操作时,我得到以下信息:

    SQL> @file.sql
    382
    

    就好像他没有结束这个街区。我刚开始使用pl/sql和sqlplus,所以我不知道我是否做错了什么。

    有什么想法吗?

    2 回复  |  直到 16 年前
        1
  •  9
  •   Tony Andrews    16 年前

    您需要在最后一行之后再添加一行;如下所示:

    /
    

    只是一个斜线作为行中的第一个字符,然后是一个新行。

        2
  •  0
  •   LeleDumbo    16 年前

    好吧,我知道了。我应该在发布问题之前在文档中进行更好的搜索。

    无论如何,根据此链接: http://download.oracle.com/docs/cd/B19306_01/server.102/b14357/ch4.htm#sthref840

    SQL*PLUS以与SQL命令相同的方式处理PL/SQL子程序,但分号(;)或空行不会终止和执行块。通过在新行上单独输入句点(.)来终止pl/sql子程序。您还可以通过在新行上输入斜线(/)来终止和执行pl/sql子程序。

    你必须以/结尾,而不是结尾。