代码之家  ›  专栏  ›  技术社区  ›  A.E.K

ORA-00933:SQL命令在Groovy脚本中未正确结束

  •  0
  • A.E.K  · 技术社区  · 9 年前

    编写此脚本:

    static  void schema()
    {
        Sql.newInstance(*DB_CONFIG, DB_DRIVER).execute('''
            drop table if exists post;
            drop table if exists author;
            create table author(
                id integer primary key,
                name varchar(500)
                );
            create table post(
                id integer primary key,
                title varchar(500),
                text longvarchar,
                author integer not nul,
                foreign key(author) references author(id)
                );
            ''')
    }
    

    开始后,我看到了:

    “警告:执行失败: 因为:ORA-00933:SQL命令未正确结束“

    我使用的是Oracle11g2数据库和Oraclejdbc驱动程序。

    1 回复  |  直到 9 年前
        1
  •  2
  •   Lalit Kumar B    9 年前

    删除表(如果存在); 删除表(如果存在作者);

    它不是有效的 Oracle语法 你可以用下面的方法-

    BEGIN
       EXECUTE IMMEDIATE 'DROP TABLE post';
    EXCEPTION
       WHEN OTHERS THEN
          IF SQLCODE != -942 THEN
             RAISE;
          END IF;
    END;
    
    BEGIN
       EXECUTE IMMEDIATE 'DROP TABLE author';
    EXCEPTION
       WHEN OTHERS THEN
          IF SQLCODE != -942 THEN
             RAISE;
          END IF;
    END;
    

    还有一个语法错误-

    作者整数不是nul,

    将其更正为 NOT NULL .