我使用的是dbvisualizerpro9.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;
/...
它们是一系列相同的 triggers
bbdd的不同表格。当我运行 sql
命令显示以下错误消息:
14:42:07[创建-0行,0.032秒]命令已处理。没有行受到影响
14:42:07[:new.usumod_01-0行,0.000秒][代码:17439,sql状态:99999]tipo sql no válido:sqlkind=未初始化
14:42:07[结束-0行,0.000秒][代码:900,sql状态:42000]ora-00900:sentencia sql no vá利达
14:42:07[/-0行,0.000秒][代码:900,sql状态:42000]ora-00900:判决sql no vá利达
14:42:07[:new.fecmod_01-0行,0.000秒][代码:17439,sql状态:99999]tipo sql no válido:sqlkind=未初始化
14:42:07[:new.usualt_01-0行,0.000秒][代码:17439,sql状态:99999]tipo sql no válido:sqlkind=未初始化
14:42:07[:new.usumod_01-0行,0.000秒][代码:17439,sql状态:99999]tipo sql no válido:sqlkind=未初始化
14:42:07[选择-0行,0.000秒][代码:1008,sql状态:72000]ora-01008:无todas las变量han sido enlazadas
14:42:07[结束-0行,0.015秒][代码:900,sql状态:42000]ora-00900:sentencia sql no vá利达
...
在这之后 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
.
3条答案
按热度按时间fslejnso1#
create trigger在dbvisualizer中被称为“复杂语句”,因为它包含嵌套语句。有关如何执行此类语句,请参见用户指南:
http://confluence.dbvis.com/display/ug100/executing+complex+statements
向汉斯问好
envsm3lx2#
据我所知,这是错误的:
因为它是一个无效的序列名-应该有一个字母作为第一个字符,而不是一个数字。举个例子:
如果忽略错误,我们创建一个触发器:
好的,然后修复序列名称并重新创建触发器(使用新的序列名称):
好像没事吧?
3zwtqj6y3#
我安装了oraclesqldeveloper,sql工作正常。