Oracle 10gR2 触发器错误

发布于 2024-09-13 07:15:24 字数 607 浏览 2 评论 0原文

我有 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 关键字不存在 找到了预期的地方

I have Oracle 10gR2. I am trying to create autoincrement trigger.
Here is the sample:

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;
/

Trigger creation gives warning:

warning : ORA-24344: success with
compilation error

And when I get error value:

select OCI_SUCCESS_WITH_INFO;
/

It gives error:

error : ORA-00923: FROM keyword not
found where expected

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

第七度阳光i 2024-09-20 07:15:24

您使用什么客户端来发出这些命令? ORA-24344 是一个特殊错误。

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

SQL>  show errors

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

select OCI_SUCCESS_WITH_INFO
from dual
/

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


“这是 Navicat 问题”

这并不让我感到惊讶,因为我针对我的数据库运行了你的代码并且它构建得很顺利。

What client are you using to issue these commands? ORA-24344 is a perculiar error.

In SQL*PLus we can get more information about compilation errors like this:

SQL>  show errors

As for the ORA-00923 error, that is because in Oracle's version of SQL we always have to select from a table. So you should execute

select OCI_SUCCESS_WITH_INFO
from dual
/

I'm not sure how much sense that makes, but at least you won't get the error.


"It was Navicat problem"

That doesn't surprise me, as I ran your code against my database and it built without a hitch.

匿名的好友 2024-09-20 07:15:24

也许这对某人有用:

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

Maybe it will be useful for somebody:

If you are using Oracle 10g and OCI driver, ORA-24344 shows when trigger have carriage return sign (\r) in code eg. file was created with Windows end of line style.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文