Oracle 10gR2 触发错误
Posted
技术标签:
【中文标题】Oracle 10gR2 触发错误【英文标题】:Oracle 10gR2 trigger error 【发布时间】:2010-08-03 06:11:22 【问题描述】:我有 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 关键字不是 在预期的地方找到
【问题讨论】:
【参考方案1】:您使用什么客户端来发出这些命令? ORA-24344 是一个奇怪的错误。
在 SQL*PLus 中,我们可以获得更多关于编译错误的信息,如下所示:
SQL> show errors
至于 ORA-00923 错误,那是因为在 Oracle 的 SQL 版本中,我们总是必须从表中进行选择。所以你应该执行
select OCI_SUCCESS_WITH_INFO
from dual
/
我不确定这有多大意义,但至少你不会得到错误。
“这是 Navicat 的问题”
这并不让我感到惊讶,因为我在我的数据库上运行了您的代码,并且它顺利构建。
【讨论】:
我正在使用 Navicat SQL for MAC OS X,最新版本 非常感谢。这是 Navicat 的问题。【参考方案2】:也许它对某人有用:
如果您使用 Oracle 10g 和 OCI 驱动程序,ORA-24344 会显示触发器在代码中具有回车符 (\r) 时,例如。文件是使用 Windows 行尾样式创建的。
【讨论】:
以上是关于Oracle 10gR2 触发错误的主要内容,如果未能解决你的问题,请参考以下文章
Oracle 11gR2 RAC连接时ORA-12545错误
Oracle Study之-AIX6.1构建Oracle 10gR2 RAC