eygle.com   eygle.com
eygle.com  
 
eygle.com - 留言簿 - 回复留言 - Powered by eYgLe.Com
返回留言簿
回 复 留 言
留言ID:
留言原文:
To: eygle
  一个问题请教,用dbms_lob.loadfromfile读取一个含有汉字的文本文件,
在sql*plus中为何显示成乱码?

过程如下:
SQL> create table t(
  2name varchar2(30),
  3contentclob,
  4constraint pk_t primary key (name)
  5using index tablespace hubert_index
  6);

表已创建。

SQL> create or replace directory dir1 as 'd:\test';

目录已创建。

SQL> declare
  2l_bfilebfile;
  3l_clob clob;
  4l_strvarchar2(1000);
  5begin
  6insert into t(name,content)
  7values ('test.txt',empty_clob())
  8return content into l_clob;
  9l_bfile:=bfilename('DIR1','test.txt');
 10dbms_lob.fileopen(l_bfile);
 11dbms_lob.loadfromfile(l_clob,l_bfile,dbms_lob.getlength(l_bfile));
 12dbms_lob.fileclose(l_bfile);
 13commit;
 14exception when others then
 15l_str:=sqlerrm(sqlcode);
 16dbms_output.put_line(l_str);
 17end;
 18/

PL/SQL 过程已成功完成。

SQL> select name,dbms_lob.getlength(content) from t;

NAME DBMS_LOB.GETLENGTH(CONTENT)
------------------------------ ---------------------------
test.txt 118

已选择 1 行。

SQL> select content from t;

CONTENT
--------------------------------------------------------------------------------
????????汣扯?煳?汰獵????????????????汣扯????

已选择 1 行。

SQL> select * from nls_session_parameters;

PARAMETERVALUE
------------------------------ -----------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORYCHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMATYYYY-MM-DD HH24:MI:SS
NLS_DATE_LANGUAGESIMPLIFIED CHINESE
NLS_SORT BINARY
NLS_TIME_FORMATHH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCYRMB
NLS_COMP BINARY

已选择15行。

SQL> select * from nls_instance_parameters;

PARAMETERVALUE
------------------------------ -----------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORYAMERICA
NLS_SORT
NLS_DATE_LANGUAGE
NLS_DATE_FORMAT
NLS_CURRENCY
NLS_NUMERIC_CHARACTERS
NLS_ISO_CURRENCY
NLS_CALENDAR
NLS_TIME_FORMAT
NLS_TIMESTAMP_FORMAT
NLS_TIME_TZ_FORMAT
NLS_TIMESTAMP_TZ_FORMAT
NLS_DUAL_CURRENCY
NLS_COMP

已选择15行。

SQL> select * from nls_database_parameters;

PARAMETERVALUE
------------------------------ -----------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORYAMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMATDD-MON-RR
NLS_DATE_LANGUAGEAMERICAN
NLS_SORT BINARY
NLS_TIME_FORMATHH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZH:TZM
NLS_TIMESTAMP_TZ_FORMATDD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY$
NLS_COMP BINARY
NLS_NCHAR_CHARACTERSET ZHS16GBK
NLS_RDBMS_VERSION8.1.7.0.0

已选择18行。


------------------------------
如方便的话,请指点一下,谢谢!


From: hubert
2005.08.13 03:36
管理密码: 请输入管理密码, 否则无法回复.
斑竹昵称:
信息图标: ( 随机 )


BB 代码:
内容:

如果想删除回复, 请点击最下面的删除回复按钮.
删 除 回 复
管理密码: 请输入管理员密码, 只有版主才能删除回复.
Copyright © 2003~2012 eygle.com All Rights Reserved.
Powered by: www.eygle.com