考试网 >> IT认证 >> Oracle >> Oracle指导 >> OracleORA-00903错误具体原因分析

OracleORA-00903错误具体原因分析

发布时间:2006-06-28 10:03     点击:
分页:上一页  1 [2] 

  **** Incorrect Example ****

  CREATE OR REPLACE PROCEDURE ddlproc (tablename VARCHAR2,colname VARCHAR2,

coltype VARCHAR2) AS cursor1 INTEGER;

  ignore INTEGER;

  BEGIN

  cursor1 := dbms_sql.open_cursor;

  dbms_sql.parse(cursor1, 'CREATE TABLE :x1 (:y1 :z1)', dbms_sql.v7);

  dbms_sql.bind_variable(cursor1, ':x1', tablename);

  dbms_sql.bind_variable(cursor1, ':y1', colname);

  dbms_sql.bind_variable(cursor1, ':z1', coltype);

  ignore := dbms_sql.execute(cursor1);

  dbms_sql.close_cursor(cursor1);

  End;

  /

  虽然在过程创建时,没有错误信息。但在运行时,你将得到错误信息"ORA-00903: invalid table name" 。

  SQL> execute ddlproc ('MYTABLE', 'COL1', 'NUMBER');

  begin ddlproc ('MYTABLE', 'COL1', 'NUMBER'); end;

  *

  ERROR at line 1:

  ORA-00903: invalid table name

  ORA-06512: at "SYS.DBMS_SYS_SQL", line 239

  ORA-06512: at "SYS.DBMS_SQL", line 25

  ORA-06512: at "SCOTT.DDLPROC", line 8

  ORA-06512: at line 1

  案例二:SQL*Plus 中的触发器错误

  你是如何发现dbms_error_code 数字的呢?我如何才能在SQL*Plus 中显示Oracle错误信息描述呢?

  第1行错误:

  ORA-04098: 'SYSTEM.LOG_ERRORS_TRIG'触发器无效,并且无法再次生效

  ORA-00903: 无效表明

  ORA错误可以在错误信息指南(technet.oracle.com上可以找到完全的文档)中找到。你列出的错误信息说的是SYSTEM ID拥有的名为LOG_ERRORS_TRIG的触发器无效了,因为触发器中参考了一个无效的表名。你需要找出触发器代码并从那里开始继续。
分页:上一页  1 [2] 
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有