网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.Oracle SQL的优化(1).
.两个有用的oracle数据库运算:in.
.Oracle 数据类型.
.Oracle 数据库 10g:数据库技术的.
.Oracle 分析函数的使用一.
.Oracle的数据库表与视图.
.Oracle数据库技术(40).
.关于Oracle几种锁管理的汇总.
.Oracle数据库SQL语句性能调整的基.
.嵌入式Linux指南.
.9i新特性之一连接篇.
.Oracle数据库中的表连接方式及使.
.怎样在FORM中使用程序实现与EXCE.
.DBMS_SQL包和游标计算用户下所有.
.Oracle快速入门.
.*[原创]*安装文档ORACLE9i for s.
.Oracle诊断案例-SGA与Swap之一.
.Oracle 9i新特性研究系列之一 --.
.网络关系型数据库的代表Oracle 9i.
.Oracle rac安装过程详解(八).

OracleORA-00903错误具体原因分析

发表日期:2008-2-9


  ORA-00903 invalid table name   ORA-00903:无效的表名   Cause A table or cluster name is invalid or does not exist. This message is also issued if an invalid cluster name or no cluster name is specified in an ALTER CLUSTER or DROP CLUSTER statement.   Action Check spelling. A valid table name or cluster name must begin with a letter and may contain only alphanumeric characters and the special characters $, _, and #. The name must be less than or equal to 30 characters and cannot be a reserved Word.   原因:表名或簇名不存在或无效,当运行ALTER CLUSTER 或 DROP CLUSTER语句时,会出现此错误信息。   方案:检查拼写是否正确。一个有效的表名或簇名必须以字母开头,只含有字母或数字,不能超过30个字符,可以包含一些非凡字符$, _, #。表名或簇名不能是要害字。   案例一: 使用 DBMS_SQL包执行DDL语句   ----------------------------------------------------   The DBMS_SQL package can be used to execute DDL statements directly from PL/SQL.   这是一个创建一个表的过程的例子。该过程有两个参数:表名和字段及其类型的列表。   CREATE OR REPLACE PROCEDURE ddlproc (tablename varchar2, cols varchar2) AS   cursor1 INTEGER;   BEGIN   cursor1 := dbms_sql.open_cursor;   dbms_sql.parse(cursor1, 'CREATE TABLE ' tablename ' ( ' cols ' )', dbms_sql.v7);   dbms_sql.close_cursor(cursor1);   end;   /   SQL> execute ddlproc ('MYTABLE','COL1 NUMBER, COL2 VARCHAR2(10)');   PL/SQL procedure sUCcessfully completed.   SQL> desc mytable;   Name Null? Type   ------------------------------- -------- ----   COL1 NUMBER   COL2 VARCHAR2(10)   注重:DDL语句是由Parese命令执行的。因此,不能对DDL语句使用bind变量,否则你就会受到一个错误信息。   下面的在DDL语句中使用bind变量的例子是错误的。   **** 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的触发器无效了,因为触发器中参考了一个无效的表名。你需要找出触发器代码并从那里开始继续。

上一篇:数据库手册:Oracle维护常用SQL语句 人气:710
下一篇:利用oracle高级复制功能实现数据同步的问题 人气:871
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐