Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle APEX在导入sql文件时不创建触发器_Oracle_Oracle11g_Oracle Apex_Navicat - Fatal编程技术网

Oracle APEX在导入sql文件时不创建触发器

Oracle APEX在导入sql文件时不创建触发器,oracle,oracle11g,oracle-apex,navicat,Oracle,Oracle11g,Oracle Apex,Navicat,我有一个从Oracle Express导出的SQL文件,很可能是使用Navicat Lite导出的,并且有创建触发器的查询 但是在我使用APEX SQL Workshop->SQL脚本导入文件后,触发器没有成功创建,没有错误 查询是这样的,它们绝对有效,当我使用SQL命令手动运行这些查询时,我可以成功地创建触发器 创建或替换触发器RESENV.AREA\u ID\u在插入RESENV.AREA之前自动递增,当NEW.ID为空时,引用每行的新旧一样 开始 选择area_id_seq.nextval

我有一个从Oracle Express导出的SQL文件,很可能是使用Navicat Lite导出的,并且有创建触发器的查询

但是在我使用APEX SQL Workshop->SQL脚本导入文件后,触发器没有成功创建,没有错误

查询是这样的,它们绝对有效,当我使用SQL命令手动运行这些查询时,我可以成功地创建触发器

创建或替换触发器RESENV.AREA\u ID\u在插入RESENV.AREA之前自动递增,当NEW.ID为空时,引用每行的新旧一样 开始 选择area_id_seq.nextval to:new.id from dual; 完;

-- ---------------------------- 
-- Checks structure for table "RESENV"."AREA" 
-- ---------------------------- 
ALTER TABLE "RESENV"."AREA" ADD CHECK ("ID" IS NOT NULL); 
ALTER TABLE "RESENV"."AREA" ADD CHECK ("NAME" IS NOT NULL); 

-- ---------------------------- 
-- Checks structure for table "RESENV"."DATASET" 
-- ---------------------------- 
ALTER TABLE "RESENV"."DATASET" ADD CHECK ("SYSTEM_ID" IS NOT NULL); 
ALTER TABLE "RESENV"."DATASET" ADD CHECK ("AREA_ID" IS NOT NULL); 
ALTER TABLE "RESENV"."DATASET" ADD CHECK ("TABLE_NAME" IS NOT NULL); 
ALTER TABLE "RESENV"."DATASET" ADD CHECK ("CREATED" IS NOT NULL); 

-- ---------------------------- 
-- Triggers structure for table "RESENV"."IDX" 
-- ---------------------------- 
CREATE OR REPLACE TRIGGER "RESENV"."IDX_ID_AUTOINCREMENT" BEFORE INSERT ON "RESENV"."IDX" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW ENABLE WHEN (new.id is null) 
begin  
    select idx_id_seq.nextval into :new.id from dual; 
end;; 

-- ---------------------------- 
-- Checks structure for table "RESENV"."IDX" 
-- ---------------------------- 
ALTER TABLE "RESENV"."IDX" ADD CHECK ("ID" IS NOT NULL); 

-- ---------------------------- 
-- Triggers structure for table "RESENV"."SYSTEM" 
-- ---------------------------- 
CREATE OR REPLACE TRIGGER "RESENV"."SYSTEM_ID_AUTOINCREMENT" BEFORE INSERT ON "RESENV"."SYSTEM" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW ENABLE WHEN (new.id is null) 
begin  
    select SYSTEM_ID_SEQ.nextval into :new.id from dual; 
end;; 

-- ---------------------------- 
-- Checks structure for table "RESENV"."SYSTEM" 
-- ---------------------------- 
ALTER TABLE "RESENV"."SYSTEM" ADD CHECK ("ID" IS NOT NULL); 
ALTER TABLE "RESENV"."SYSTEM" ADD CHECK ("SYSTEM_CREATED" IS NOT NULL); 
ALTER TABLE "RESENV"."SYSTEM" ADD CHECK ("SYSTEM_MODIFIED" IS NOT NULL); 
ALTER TABLE "RESENV"."SYSTEM" ADD CHECK ("USER_ID" IS NOT NULL); 

-- ---------------------------- 
-- Checks structure for table "RESENV"."UNIT" 
-- ---------------------------- 
ALTER TABLE "RESENV"."UNIT" ADD CHECK ("ID" IS NOT NULL); 
ALTER TABLE "RESENV"."UNIT" ADD CHECK ("NAME" IS NOT NULL); 
ALTER TABLE "RESENV"."UNIT" ADD CHECK ("GD_ID" IS NOT NULL); 
ALTER TABLE "RESENV"."UNIT" ADD CHECK ("AREA_ID" IS NOT NULL); 

-- ---------------------------- 
-- Checks structure for table "RESENV"."USERS" 
-- ---------------------------- 
ALTER TABLE "RESENV"."USERS" ADD CHECK ("ID" IS NOT NULL); 
ALTER TABLE "RESENV"."USERS" ADD CHECK ("NAME" IS NOT NULL); 
ALTER TABLE "RESENV"."USERS" ADD CHECK ("PASSWORD" IS NOT NULL); 

-- ---------------------------- 
-- Checks structure for table "RESENV"."VLUE" 
-- ---------------------------- 
ALTER TABLE "RESENV"."VLUE" ADD CHECK ("ID" IS NOT NULL); 
ALTER TABLE "RESENV"."VLUE" ADD CHECK ("UNIT_ID" IS NOT NULL); 
ALTER TABLE "RESENV"."VLUE" ADD CHECK ("IDX_ID" IS NOT NULL); 
ALTER TABLE "RESENV"."VLUE" ADD CHECK ("IDX_VALUE" IS NOT NULL); 
​
我试了很多次,结果都一样

为什么会这样?这是APEX的虫子吗

使现代化 在创建表和插入数据之前,我在SQL文件的末尾显示了这些行,但APEX将所有这些行视为一条语句,只创建了一个触发器,其代码如上所示。当然,触发器的代码中有一个错误,但APEX在运行SQL脚本时没有提到这一点

我已尝试使用Navicat使用执行SQL文件函数导入转储文件。错误如下所列,我认为应该可以

更新2 事实证明,我必须在每个create trigger语句的末尾添加斜杠/号,否则每个脚本文件中只能创建一个触发器。

但是触发器仍然存在上述语句和斜杠的错误

代码是:

create or replace TRIGGER "RESENV"."SYSTEM_ID_AUTOINCREMENT" BEFORE INSERT ON "RESENV"."SYSTEM" REFERENCING OLD AS "OLD" NEW AS "NEW" FOR EACH ROW WHEN (new.id is null) 
begin  
    select SYSTEM_ID_SEQ.nextval into :new.id from dual; 
end;; 
​ 错误为:3号线位置5,PLS-00103:遇到符号

我不知道navcat为什么会这样出口

使现代化
原来是双分号导致了这个问题。在我删除了一个脚本后,再也没有错误了。

转到SQL脚本,找到您的脚本,然后单击“结果”列中的数字。将打开有关运行此脚本的新报告,请在“结果”列视图中单击此处。您将看到错误消息。@Dmitry问题是,根本没有错误。语句处理1133成功1133出现错误0您是否在系统视图中搜索此触发器?尝试运行查询拖放触发器RESENV.IDX\u ID\u AUTOINCREMENT。DBMS的响应是什么?@Dmitry It说:触发器“IDX\u ID\u AUTOINCREMENT”不存在。我检查了SQL脚本的结果,只有一个触发器创建语句,而我有3个类似的触发器,就像这个一样。我认为Oracle未能创建触发器,但没有抛出错误。因此,数据库中只有一个触发器,而objectdetails中显示的触发器代码是创建触发器行中的所有以下代码。