0
Oracle XE 11gデータベースでテーブルを作成した後にトリガを作成しようとしましたが、パラメータの欠落が発生しています。GroovyのINまたはOUTパラメータoracleデータベースがありません
sql.execute("CREATE TABLE flows (id NUMBER PRIMARY KEY NOT NULL,name VARCHAR2(50) NOT NULL,package VARCHAR2(50) NOT NULL,content VARCHAR2(4000),status VARCHAR2(50),nextRun NUMBER)")
sql.execute('CREATE SEQUENCE id_seq')
sql.call("""
CREATE OR REPLACE TRIGGER id_trig
BEFORE INSERT ON FLOWS
FOR EACH ROW
BEGIN
SELECT id_seq.nextval into :new.id FROM dual;
END;
""")
ログ:
Oct 11, 2016 10:40:45 AM groovy.sql.Sql call
WARNING: Failed to execute:
CREATE OR REPLACE TRIGGER id_trig
BEFORE INSERT ON FLOWS
FOR EACH ROW
BEGIN
SELECT id_seq.nextval into :new.id FROM dual;
END;
because: Missing IN or OUT parameter at index:: 1
を使うべきだと思うので、トリガーを作成しようとしています。あなたはそれをエスケープする方法を探したり、何かをバインドするつもりはないとエンジンに知らせる必要があります。 –
あなたが正しいと思われます。 Groovyはそれを回避する方法を文書化していません。とにかくありがとう! – danieljohngomez