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
使用Oracle 11g在SQL Developer中绑定变量_Oracle_Oracle11g_Database Trigger - Fatal编程技术网

使用Oracle 11g在SQL Developer中绑定变量

使用Oracle 11g在SQL Developer中绑定变量,oracle,oracle11g,database-trigger,Oracle,Oracle11g,Database Trigger,我在尝试使用before insert触发器执行序列时遇到问题 CREATE TABLE personne (ID number, nom varchar2(250 char)); CREATE SEQUENCE s_inc_pers START WITH 1 INCREMENT BY 1; CREATE TRIGGER tr_inc_pers ON t1 BEFORE INSERT FOR EACH ROW DECLARE BEGIN select s_inc_pers into :n

我在尝试使用before insert触发器执行序列时遇到问题

CREATE TABLE personne (ID number, nom varchar2(250 char));

CREATE SEQUENCE s_inc_pers START WITH 1 INCREMENT BY 1;

CREATE TRIGGER tr_inc_pers ON t1 BEFORE INSERT
FOR EACH ROW
DECLARE
BEGIN
  select s_inc_pers into :new.t1.ID from DUAL;
END.

如果您尝试引用的
:NEW
不是目标表中的列,Oracle将报告一个坏绑定变量。在这种情况下,由于语句格式不正确,它可能会提示您输入绑定值

指触发表中受语句影响的行。使用伪记录字段时,不需要(也不能)包含表名,因此
:new.t1.ID
应该是
:new.ID

要使用
nextval
,您不能只提供序列名

子句的顺序也不正确,在目标表之前需要DML事件(insert)

CREATE TRIGGER tr_inc_pers BEFORE INSERT ON t1
FOR EACH ROW
BEGIN
  select s_inc_pers.nextval into :new.ID from DUAL;
END;
由于您使用的是11g,您甚至不需要从dual中进行选择:


如果您在原始问题中包含您正在经历的问题类型,通常可以帮助人们更快更好地回答:例如,您正在经历的错误消息或行为,以及它与您预期的不同之处
CREATE TRIGGER tr_inc_pers BEFORE INSERT ON t1
FOR EACH ROW
BEGIN
  :new.ID := s_inc_pers.nextval;
END;