ORA-22866 default character set is of varying width
Cause: A character LOB was defined but the default character set is not fixed
width.
Action: Ensure that the character set is of fixed width before defining character
LOBs.是默认字符集设置的问题,和权限无关。你用scott和system登陆的时候环境是一样的吗?
Cause: A character LOB was defined but the default character set is not fixed
width.
Action: Ensure that the character set is of fixed width before defining character
LOBs.是默认字符集设置的问题,和权限无关。你用scott和system登陆的时候环境是一样的吗?
两边的字符集都是一样的,我看过了。而且我直接在服务器(8.0.5)上用scott用户登陆,执行上面语句还是同样的错误。这就想不通了。
连接到:
Oracle8 Release 8.0.5.0.0 - Production
PL/SQL Release 8.0.5.0.0 - ProductionSQL> CREATE TABLE TEST2 (AAA CLOB);表已创建。SQL> insert into test2 values('aaaaa');
insert into test2 values('aaaaa')
*
ERROR 位于第 1 行:
ORA-22866: 默认字符集具有不同的宽度SQL> conn scott/tiger@dbsrv
已连接。SQL> CREATE TABLE TEST2 (AAA CLOB);
CREATE TABLE TEST2 (AAA CLOB)
*
ERROR 位于第 1 行:
ORA-22866: 默认字符集具有不同的宽度
1、客户端注册表中HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\中的NLS_LANG设置是什么?
2、在服务器端执行select * from nls_parameters;检查nls设置
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\NLS_LANG=
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
8。1。0(server)
select * from nls_parametersNAME
---------------------------------------------
VALUE
---------------------------------------------
nls_language
AMERICANnls_territory
AMERICA++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
------看来这出了问题,但我在服务器上注册表看过了,里面的nls都是SIMPLIFIED CHINESE_CHINA.ZHS16GBK--怎么回事?
2、或者在执行sqlplus之前修改系统环境参数:
DOS下:
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
UNIX下:
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
3、或者修改服务器参数使之和环境变量相同以上三种方式任选一种即可
我想还是版本的问题,你在817试
数据库: Oracle 8i R3 (8.1.7) for NT 企业版SQL> create table a(a clob);SQL> insert into a values('1234');SQL> insert into a values('5648');
SQL> SELECT * FROM A WHERE dbms_lob.instr(a.a,'12',1,1)>0;
1234
我想还是版本的问题,你在817试
数据库: Oracle 8i R3 (8.1.7) for NT 企业版SQL> create table a(a clob);SQL> insert into a values('1234');SQL> insert into a values('5648');
SQL> SELECT * FROM A WHERE dbms_lob.instr(a.a,'12',1,1)>0;
1234