分享
 
 
 

Oracle错误案例:ORA-00922

王朝oracle·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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

单引号是至关重要的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有