网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
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笔记七(其他).
.存储过程应注意的几个问题.
.讨论:数据库管理员职责.
.详细讲解Oracle数据库中不同的恢.
.Oracle 10G新特性之闪回查询深入.
.Oracle中空间管理对系统性能的影.
.RedHat8下面安装Oracle 9i笔记.
.让quake3在linux下顺利运行.
.9I新特性之细粒度访问原则.
.关于数据备份与恢复的定义和重要.
.如何学习Oracle9i认证专员(OCA).
.在Linux下安装VNC 远程安装Oracle.
.Oracle数据操作和控制语言详解(1).
.精彩arm linux演义.
.Oracle10g数据库最佳新特性:等待.
.Oracle Database 10g:最佳新特性.
.Linux_FAQ之二:硬件配置.
.哪些因素可以影响Oracle数据库的.
.在Oracle中返回多个结果集.
.如何让Oracle的数据不丢失?.

Oracle错误案例:ORA-00922

发表日期:2008-2-9


ORA-00922 missing or invalid option 
0RA-00922: 丢失或者无效的选项   Cause An invalid option was specified in defining a column or storage clause. The valid option in specifying a column is NOT NULL to specify that the column cannot contain any NULL values. Only constraints may follow the datatype. Specifying a maximum length on a DATE or LONG datatype also causes this error.
 
  Action Correct the syntax. Remove the erroneous option or length specification from the column or storage specification.    案例一:Oracle明文密码漏洞   受影响系统:   Oracle Oracle10g Application Server 9.0.4.0
  Oracle Oracle10g Application Server 10.1.0.2
  描述:   Oracle Database是一款商业性质大型数据库系统。   Oracle 10g存在包含明文密码的全局可读文件,本地攻击者可以利用这个漏洞获得对数据库的访问。   SYSMAN帐户的密码可在'$ORACLE_HOME/hostname_sid/sysman/config/emoms.properties'文件中获得,此文件全局可读。   另外假如安装Oracle 10g时提供SYS, SYSTEM, DBSNMP和SYSMAN 帐户密码相同,并且密码有赞叹号(如f00bar!!),那么当设置SYSMAN和DBSNMP密码时DB安装会出现错误,错误信息"postDBCreation.log"会记录密码:   alter user SYSMAN identified by f00bar!! account unlock
ERROR at line 1:
ORA-00922: missing or invalid option   alter user DBSNMP identified by f00bar!! account unlock
ERROR at line 1:
ORA-00922: missing or invalid option   <*来源:David Litchfield (david@nextgenss.com)
 
  链接:http://marc.theaimsgroup.com/?  l=bugtraq&m=110382247308064&w=2
  *>   建议:   厂商补丁:   Oracle
  ------
  ORACLE已经发布patch (#68)来修正此漏洞:   http://metalink.oracle.com/ 案例二:置换变量   我才刚开始使用Oracle的产品,我在执行下面两条命令的时候碰到了问题:ACCEPT 和PROMPT。我已经更改了行的顺序,有时候放在CHAR中,有时候删除,有时候放在PROMPT中,有时候删除。无论我怎么做还是收到错误信息。我甚至试过把ACCEPT 和PROMPT放在BEGIN的前后。
我想做的事情是这样的。在脚本的开始,我从键盘读取开始和结束日期,然后在程序的主要部分,我从一个表中使用SELECT读取,并测试看日期是否在键盘输入的两个日期之间。现在当我在SQL*Plus中执行/编译脚本的时候,我得到的错误信息是ORA-00922。
PROMPT
ACCEPT in_beg_date  PROMPT 'Enter beginning extract date mm/dd/yy '
PROMPT
ACCEPT in_end_date  PROMPT 'Enter ending extract date mm/dd/yy '
DECLARE
   beg_date VARCHAR2(8) := &in_beg_date;
   end_date VARCHAR2(8) := &in_end_date;
   beg_dte  DATE;
   end_dte  DATE;
...
BEGIN
   beg_dte := TO_DATE (beg_date, 'MM/DD/YY');
   end_dte := TO_DATE (end_date, 'MM/DD/YY');
...
   IF (outrec_abs_date >= beg_dte and <= end_dte) THEN
...

  说实话,看起来你对PROMPT 和 ACCEPT 有一个很好的理解。PROMPT 告诉SQL*Plus 在屏幕上书写一行文字。你在这里使用了两个PROMPT命令;每个命令都在屏幕上打印一个空行,这对于垂直间距很有好处。ACCEPT命令是等待用户输入一个置换变量的值。ACCEPT命令中可选的PROMPT 子句在用户输入数值的同一行中显示了一条信息。你在PL/SQL 块的外面放置PROMPT 和 ACCEPT 是正确的:他们是SQL*Plus 命令,不是PL/SQL 。   你可能注重到当你运行这个脚本的时候,每一个拥有置换变量的行都引起了屏幕上的两行输出,例如:
old   3:    beg_date VARCHAR2(8) := &in_beg_date;
new   3:    beg_date VARCHAR2(8) := 09/01/03;   这就显示了SQL*Plus 在看到一行包括了置换变量的代码的时候所作的工作:他用变量的数值(以&开头)置换了变量的名字。这就像你在文本编辑器,例如记事本中,用查找和置换一样,将一个字符串的每个出现(这里是&in_beg_date)都替换成了另一个字符串(09/09/03)。“原来”的行就是在代码中的样子。“新”的行是将要执行的样子。假如你执行了"beg_date VARCHAR2(8) := 09/01/03;"语句,会发生什么?SQL*Plus 会创建一个字符串变量并且用":="右侧的数值来进行初始化。在这个案例中,它是一个数字表达式,那么SQL*Plus 就会检测"(9/1) / 3"这个表达式,并将答案写为'3'。你实际的意思是:   beg_date VARCHAR2(8) := '&in_beg_date';
  end_date VARCHAR2(8) := '&in_end_date';
  单引号是至关重要的。
上一篇:Oracle Berkeley数据库Java版 人气:658
下一篇:Oracle迁移SQL Server的陷阱 人气:849
浏览全部Oracle教程的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐