Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.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/1/oracle/9.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
触发器失败-ORA-04098无效,重新验证sql失败_Sql_Oracle - Fatal编程技术网

触发器失败-ORA-04098无效,重新验证sql失败

触发器失败-ORA-04098无效,重新验证sql失败,sql,oracle,Sql,Oracle,这是使用Oracle xe触发器创建接口创建的触发器 创建时没有错误,但在表上调用insert时,会显示触发器错误 触发器失败-ORA-04098无效且重新验证失败 指导和建议会有很大帮助。请参见,此select语句无效,因为没有插入的表格 create or replace trigger "STUDENT_PERSONAL_DETAIL_T1" AFTER insert or update or delete on "STUDENT_PERSONAL_DETAIL" for each r

这是使用Oracle xe触发器创建接口创建的触发器

创建时没有错误,但在表上调用insert时,会显示触发器错误
触发器失败-ORA-04098无效且重新验证失败


指导和建议会有很大帮助。

请参见,此select语句无效,因为没有插入的
表格

create or replace trigger "STUDENT_PERSONAL_DETAIL_T1" 
AFTER insert or update or delete on "STUDENT_PERSONAL_DETAIL" 
for each row 
begin 
  insert into fa1 (s_id,name,class,sec) 
  select reg_no,name,class,sec 
  from inserted 
end;
编辑如果您想将插入的值记录到表fa1中,您可以执行如下操作,如果您在表
学生个人详细信息中有以下列
注册号、姓名、类别、秒

select reg_no,name,class,sec 
from inserted 

注意插入“学生个人详细信息”后的条款
。我省略了
或更新或删除
,以确保仅对新插入的记录触发此操作。(因为您试图从表'inserted'中进行选择,所以我得出结论,这就是您想要做的)

请参见,此select语句无效,因为没有插入的表。

create or replace trigger "STUDENT_PERSONAL_DETAIL_T1" 
AFTER insert or update or delete on "STUDENT_PERSONAL_DETAIL" 
for each row 
begin 
  insert into fa1 (s_id,name,class,sec) 
  select reg_no,name,class,sec 
  from inserted 
end;
编辑如果您想将插入的值记录到表fa1中,您可以执行如下操作,如果您在表
学生个人详细信息中有以下列
注册号、姓名、类别、秒

select reg_no,name,class,sec 
from inserted 
注意插入“学生个人详细信息”后的条款
。我省略了
或更新或删除
,以确保仅对新插入的记录触发此操作。(因为您试图从表“inserted”中选择,所以我得出结论,这就是您想要做的)

您应该使用:

create or replace trigger "STUDENT_PERSONAL_DETAIL_T1" 
AFTER insert on "STUDENT_PERSONAL_DETAIL" 
for each row 
begin 
  insert into fa1 (s_id,name,class,sec) 
  values (:new.reg_no, :new.name, :new.class, :new.sec)
end;
你应使用:

create or replace trigger "STUDENT_PERSONAL_DETAIL_T1" 
AFTER insert on "STUDENT_PERSONAL_DETAIL" 
for each row 
begin 
  insert into fa1 (s_id,name,class,sec) 
  values (:new.reg_no, :new.name, :new.class, :new.sec)
end;

在oracle文档中,新插入的行被称为inserted,并且在查询中可以使用相同的关键字“inserted”。感谢您的提及,这很有趣。请链接oracle文档的相关部分好吗?在oracle文档中,新插入的行称为inserted,查询时可以使用相同的关键字“inserted”。谢谢您的提及,这很有趣。请将oracle文档的相关部分链接起来好吗?