在timesten中的字符集问题 5107

在timesten中的字符集问题 5107


Command> create readonly cache group read_tt autorefresh interval 5 seconds from tt(a int primary key);
5107: Oracle(OCI) error in OCIStmtExecute(): ORA-06552: PL/SQL: Compilation unit analysis terminated
ORA-06553: PLS-553: character set name is not recognized rc = -1
The command failed.
解决方法:
首先检查oracle中的字符集:
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
AL32UTF

将字符集修改为ZHS16GBK
SQL> update props$ set value$='ZHS16GBK' where name='NLS_CHARACTERSET';

1 row updated.

SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET';

PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
NLS_CHARACTERSET
ZHS16GBK


到这里还不算结束,对于平常的操作可以正常显示,但对于exp,imp以及于timsten的连接时创建就会报错。
另外,终端选项卡里的字符设置成为GB2312.
SQL>shutdown immediate;
SQL>startup mount;
SQL> alter system enable restricted session;
SQL> alter system set job_queue_processes=0;
System altered.
SQL> alter system set AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
SQL>alter database character set internal_use ZHS16GBK; (统一化设置)
SQL> alter database national character set internal_use ZHS16GBK;
检查一下字符集:
SQL>SELECT DISTINCT (NLS_CHARSET_NAME(CHARSETID)) CHARACTERSET,
DECODE(TYPE#, 1,
DECODE(CHARSETFORM, 1, 'VARCHAR2', 2, 'NVARCHAR2', 'UNKOWN'),
9,
DECODE(CHARSETFORM, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKOWN'),
96,
DECODE(CHARSETFORM, 1, 'CHAR', 2, 'NCHAR', 'UNKOWN'),
112,
DECODE(CHARSETFORM, 1, 'CLOB', 2, 'NCLOB', 'UNKOWN')) TYPES_USED_IN
FROM SYS.COL$
WHERE CHARSETFORM IN (1, 2)
12 AND TYPE# IN (1, 9, 96, 112);

CHARACTERSET TYPES_USED_IN
---------------------------------------- -------------
AL16UTF16 NCHAR
AL16UTF16 NCLOB
AL16UTF16 NVARCHAR2
ZHS16GBK CHAR
ZHS16GBK CLOB
ZHS16GBK VARCHAR2

注意:sys.odbc.ini的文件中要写上数据库的字符集:
以上做完之后可能在timesten中看到的仍然是乱码,这是需要在sys.odbc.ini文件中按如下属性:

[ODBC Data Sources]
dsa=TimesTen 7.0 Driver
dsacs=TimesTen 7.0 Driver

[dsa]
Driver=/timesten/TimesTen/tt80/lib/libtten.so
DataStore=/timesten/TimesTen/tt80/info/dsa/dsa
DatabaseCharacterSet=ZHS16GBK
ConnectionCharacterSet=ZHS16GBK
PermSize=64
TempSize=16
Authenticate=0
OracleID=ora10
UID=tt
Oraclepwd=tt
PWD=redhat
[dsacs]
TTC_SERVER=LocalHost_tt80
TTC_SERVER_DSN=dsa

,然后重新启动ttisql

[timesten@yy info]$ ttDaemonAdmin -stop
TimesTen Daemon stopped.
[timesten@yy info]$ ttDaemonAdmin -start
TimesTen Daemon startup OK.
[timesten@yy info]$ ttisql dsa

Copyright (c) 1996-2008, Oracle. All rights reserved.
Type ? or "help" for help, type "exit" to quit ttIsql.
All commands must end with a semicolon character.

connect "DSN=dsa";
Connection successful: DSN=dsa;UID=tt;DataStore=/timesten/TimesTen/tt80/info/dsa/dsa;DatabaseCharacterSet=ZHS16GBK;ConnectionCharacterSet=ZHS16GBK;DRIVER=/timesten/TimesTen/tt80/lib/libtten.so;OracleId=ora10;Authenticate=0;PermSize=64;TempSize=16;TypeMode=0;
(Default setting AutoCommit=1)
Command> select * from tt2;
< 慕容落雪 >
1 row found.
Command>

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25133597/viewspace-1043583/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25133597/viewspace-1043583/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值