错误:ORA-02289(2:10):PL/SQL:ORA-02289

1 oracle triggers sequence

我正在为Toad写一个触发器.但我面临一个错误

"[Error] ORA-02289 (2: 10): PL/SQL: ORA-02289: sequence does not exist". 

CREATE OR REPLACE TRIGGER ACTSINFO.USERMASTER_INSERT
BEFORE INSERT
ON ACTSINFO.USERMASTER
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
BEGIN
  SELECT USERMASTER_ID_SEQ.NEXTVAL INTO :NEW.ID FROM dual;
END;
Run Code Online (Sandbox Code Playgroud)

谁能帮我?我是蟾蜍的新手.

Dam*_*ash 8

Quest软件只是一种工具.在这种情况下,你有一个关于出错的确切错误.如消息所示,架构中不存在名为USERMASTER_ID_SEQ的序列.

解决方案可能是在序列名称之前添加模式名称(所有者):

ACTSINFO.USERMASTER_ID_SEQ
Run Code Online (Sandbox Code Playgroud)

您可以使用此查询找到所有者:

select sequence_owner 
from all_sequences
where sequence_name = 'USERMASTER_ID_SEQ';
Run Code Online (Sandbox Code Playgroud)

如果这没有帮助,则意味着您没有序列的权限,或者它实际上不存在.因此,您需要让序列的所有者将SELECT授予您的用户,或者您必须在数据库中创建序列.

要创建序列,您可能需要使用Toad的GUI.或者只使用PL/SQL语句

CREATE SEQUENCE ACTSINFO.USERMASTER_ID_SEQ
INCREMENT BY 1 
MAXVALUE 99999999999999999999 
MINVALUE 1 
CACHE 20 ;
Run Code Online (Sandbox Code Playgroud)

  • 伟大的我回答是有帮助的.如果这样关闭问题,您应该将答案标记为已接受.所以问题将得到解答. (2认同)