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的,但它看起来像你的工具试图通过在'绑定变量:new.id'。你需要查看如何逃避,或以其他方式向引擎发出信号,表明你不打算绑定任何东西。 –
看来你是对的。 Groovy没有提供如何逃避的文档。不管怎么说,还是要谢谢你! – danieljohngomez