【发布时间】:2018-08-10 05:02:10
【问题描述】:
我正在使用 DbVisualizer Pro 9.5.6 版本,并且正在运行以下 sql 命令来创建 triggers。
CREATE OR REPLACE TRIGGER "MYDB"."TG_T01_01" BEFORE INSERT ON T01
FOR EACH ROW
BEGIN
:NEW.FECALT_01 := SYSDATE;
:NEW.FECMOD_01 := SYSDATE;
SELECT T01Q00.NEXTVAL INTO :NEW.ID_01 FROM DUAL;
END;
/
CREATE OR REPLACE TRIGGER "MYDB"."TG_T01_02"
BEFORE UPDATE ON T01
FOR EACH ROW
BEGIN
:NEW.FECMOD_01 := SYSDATE;
END;
/...
它们是 BBDD 不同表的相同triggers 的列表。当我运行 sql 命令时,它会显示以下错误消息:
14:42:07 [CREATE - 0 行,0.032 秒] 命令已处理。没有行 受影响
14:42:07 [:NEW.USUMOD_01 - 0 行,0.000 秒] [代码:17439,SQL 状态:99999] 类型 SQL 无效:sqlKind = UNINITIALIZED
14:42:07 [END - 0 行,0.000 秒] [代码:900,SQL 状态:42000] ORA-00900: 句子 SQL 无效
14:42:07 [/ - 0 行,0.000 秒] [代码:900,SQL 状态:42000] ORA-00900: 句子 SQL 无效
14:42:07 [:NEW.FECMOD_01 - 0 行,0.000 秒] [代码:17439,SQL 状态:99999] 类型 SQL 无效:sqlKind = UNINITIALIZED
14:42:07 [:NEW.USUALT_01 - 0 行,0.000 秒] [代码:17439,SQL 状态:99999] 类型 SQL 无效:sqlKind = UNINITIALIZED
14:42:07 [:NEW.USUMOD_01 - 0 行,0.000 秒] [代码:17439,SQL 状态:99999] 类型 SQL 无效:sqlKind = UNINITIALIZED
14:42:07 [SELECT - 0 行,0.000 秒] [代码:1008,SQL 状态:72000] ORA-01008: 没有 todas las 变量 han sido enlazadas
14:42:07 [END - 0 行,0.015 秒] [代码:900,SQL 状态:42000] ORA-00900: 句子 SQL 无效
...
在此之后,trigger 以下列方式创建:
CREATE OR REPLACE TRIGGER "MYDB"."TG_T01_01" BEFORE INSERT ON T01
FOR EACH ROW
BEGIN
:NEW.FECALT_01 := SYSDATE
注意:已经创建错误的trigger可以编辑并放代码,trigger确实可以,代码写得很好,所以我得出结论最有可能是DbVisualizer的sql解释器将; 视为END。
【问题讨论】:
-
这看起来像是一个 Oracle RDBMS 问题。如果是这种情况,请删除 MySQL 标签。
标签: mysql sql oracle dbvisualizer