找回密码
 注册
搜索
热搜: 回贴

数据库管理员必须了解WHERE条件的重要性

2009-12-13 21:04| 发布者: admin| 查看: 110| 评论: 0|原作者: 夙瑶

〖错误案例:数据库无法启动时报ORA-12......


错误案例:数据库无法启动时报ORA-12708错误。
错误提示的解释如下:
ORA-12708 error while loading create database NLS parameter string



Cause: This is an internal error.

Action: Contact Oracle Support Services.


在跟踪启动过程时可以得到如下的信息:


select value$ from sys.props$ where name = :1

END OF STMT

PARSE #4:c=0,e=703,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=4116419526

BINDS #4:

kkscoacd

Bind#0

oacdty=01 mxl=32(17) mxlc=00 mal=00 scl=00 pre=00

oacflg=18 fl2=0001 frm=01 csi=871 siz=32 off=0

kxsbbbfp=0af128c8 bln=32 avl=17 flg=05

value="NLS_RDBMS_VERSION"

EXEC #4:c=0,e=976,p=0,cr=0,cu=0,mis=1,r=0,dep=1,og=4,tim=4116420710

FETCH #4:c=0,e=112,p=0,cr=3,cu=0,mis=0,r=1,dep=1,og=4,tim=4116420867

ORA-12708: 鍔犺浇鍒涘缓鏁版嵁搴?NLS 鍙傛暟 NLS_RDBMS_VERSION 鏃跺嚭閿?

EXEC #1:c=593750,e=10770613,p=176,cr=1254,cu=149,mis=0,r=0,dep=0,og=1,tim=4120039529

ERROR #1:err=1092 tim=18857926


可以发现,上面的示例中有部分乱码,数据显示,启动读取NLS_RDBMS_VERSION时出现错误。
使用免费的AUL工具后,我们可以将PROPS$字典表挖掘出来,大家会发现下面的数据:
DICT.BASE|ZHS16GBK|dictionary base tables version #

DEFAULT_TEMP_TABLESPACE|ZHS16GBK|Name of default temporary tablespace

DEFAULT_PERMANENT_TABLESPACE|ZHS16GBK|Name of default permanent tablespace

DEFAULT_TBS_TYPE|ZHS16GBK|Default tablespace type

NLS_LANGUAGE|ZHS16GBK|Language

NLS_TERRITORY|ZHS16GBK|Territory

NLS_CURRENCY|ZHS16GBK|Local currency

NLS_ISO_CURRENCY|ZHS16GBK|ISO currency

NLS_NUMERIC_CHARACTERS|ZHS16GBK|Numeric characters

NLS_CHARACTERSET|ZHS16GBK|Character set

NLS_CALENDAR|ZHS16GBK|Calendar system

NLS_DATE_FORMAT|ZHS16GBK|Date format

NLS_DATE_LANGUAGE|ZHS16GBK|Date language

NLS_SORT|ZHS16GBK|Linguistic definition

NLS_TIME_FORMAT|ZHS16GBK|Time format

NLS_TIMESTAMP_FORMAT|ZHS16GBK|Time stamp format

NLS_TIME_TZ_FORMAT|ZHS16GBK|Time with timezone format

NLS_TIMESTAMP_TZ_FORMAT|ZHS16GBK|Timestamp with timezone format

NLS_DUAL_CURRENCY|ZHS16GBK|Dual currency symbol

NLS_COMP|ZHS16GBK|NLS comparison

NLS_LENGTH_SEMANTICS|ZHS16GBK|NLS length semantics

NLS_NCHAR_CONV_EXCP|ZHS16GBK|NLS conversion exception

NLS_NCHAR_CHARACTERSET|ZHS16GBK|NCHAR Character set

NLS_RDBMS_VERSION|ZHS16GBK|RDBMS version for NLS parameters

GLOBAL_DB_NAME|ZHS16GBK|Global database name

EXPORT_VIEWS_VERSION|ZHS16GBK|Export views revision #

DBTIMEZONE|ZHS16GBK|DB time zone


读者可以发现,props$.value$列都被更新为ZHS16GBK,显然这是在一次不适当的更新操作中遗漏了WHERE条件。由此可见,数据库管理员必须了解WHERE条件的重要性,并且在UPDATE时也一定不要遗漏掉。


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 13:16 , Processed in 0.189311 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部