关于pro*c中加入pl/sql trigger 触发器 编译错误问题

masterlee 2004-12-27 10:19:33
EXEC SQL EXECUTE
BEGIN
CREATE OR REPLACE TRIGGER DB_STARTUP_TRIGGER
AFTER STARTUP ON DATABASE
BEGIN
INSERT INTO AUDIT_ORACLE
VALUES (SYSDATE,
sys_context('USERENV', 'CURRENT_USER'),
sys_context('USERENV', 'IP_ADDRESS'),
'startup',
' ');
END DB_STARTUP_TRIGGER;
END;

END-EXEC;

错误信息

Error at line 57, column 3 in file audit_oracle.pc
CREATE OR REPLACE TRIGGER DB_STARTUP_TRIGGER
..1
PLS-S-00103, Encountered the symbol "CREATE" when expecting one of the following
:

begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge
<a single-quoted SQL string> pipe

Semantic error at line 56, column 2, file audit_oracle.pc:
BEGIN
.1
PCC-S-02347, PL/SQL found syntax errors

这是什么原因,SQLCHECK=SEMANTICS,已经设置了。
另外我在使用简单的PL/SQL块编译也有问题?其他SQL语句出现错误?是设置的问题吗?
...全文
219 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
masterlee 2004-12-30
  • 打赏
  • 举报
回复
算了,没有人帮我看一下,把钱给你吧。
masterlee 2004-12-27
  • 打赏
  • 举报
回复
简单的没有错误。
EXEC SQL CREATE OR REPLACE TRIGGER DB_STARTUP_TRIGGER
AFTER STARTUP ON DATABASE
BEGIN
INSERT INTO AUDIT_ORACLE
VALUES (SYSDATE,
sys_context('USERENV', 'CURRENT_USER'),
sys_context('USERENV', 'IP_ADDRESS'),
'startup',
' ');
END DB_STARTUP_TRIGGER;
这样做也有错误。
hqskoala 2004-12-27
  • 打赏
  • 举报
回复
先试试简单的PL/SQL块,看看什么错误吧
另外这条创建触发器语句不放到PL/SQL块也行!

17,140

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧