Oracle 10gR2触发错误

时间:2010-08-03 06:11:22

标签: sql oracle triggers oracle10g ora-00923

我有Oracle 10gR2。我正在尝试创建自动增量触发器。 以下是样本:

CREATE SEQUENCE TEST_SEQ
INCREMENT BY 1
START WITH 1
NOMAXVALUE
/
CREATE TABLE TESTER  (
ID_TESTER INTEGER NOT NULL,
   VAL VARCHAR2(20) NOT NULL
)
/
CREATE OR REPLACE TRIGGER TIB_TESTER BEFORE INSERT
ON TESTER FOR EACH ROW 
BEGIN
SELECT TEST_SEQ.NEXTVAL 
INTO :NEW.ID_TESTER
FROM DUAL;
END;
/

触发器创建会发出警告:

  

警告:ORA-24344:成功与   编译错误

当我收到错误值时:

select OCI_SUCCESS_WITH_INFO;
/

它给出错误:

  

错误:ORA-00923:FROM关键字不是   找到了预期的地方

2 个答案:

答案 0 :(得分:3)

您使用哪个客户端发出这些命令? ORA-24344是一个奇怪的错误。

在SQL * PLus中,我们可以获得有关编译错误的更多信息,如下所示:

SQL>  show errors

对于ORA-00923错误,这是因为在Oracle的SQL版本中,我们总是必须从表中进行选择。所以你应该执行

select OCI_SUCCESS_WITH_INFO
from dual
/

我不确定它有多大意义,但至少你不会得到错误。


  

“这是Navicat问题”

这对我来说并不让我感到惊讶,因为我在我的数据库上运行你的代码并且构建顺利。

答案 1 :(得分:0)

也许这对某些人有用:

如果您使用的是Oracle 10g和OCI驱动程序,则ORA-24344会在触发器中显示代码中的回车符号(\ r),例如。文件是使用Windows结束行样式创建的。