在使用ORACLE数据库的时候,常常连上数据库出现乱码的现象出现,原因:客户端的字符串集和数据库的不一直.
要取的数据库的字符集,并把客户端的字符集设置和数据库一直即可.取得的方法:
1.SQL:
select value,parameter from nls_database_parameters where parameter in('NLS_LANGUAGE','NLS_TERRITORY','NLS_CHARACTERSET');
依此组装即可,"NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET"。
2.创建procedure :
create or replace procedure get_nls is
-- Local variables here
langs varchar2(128) ;
loc varchar2(128);
charset varchar2(128);
begin
-- Test statements here
select value into langs from nls_database_parameters where parameter='NLS_LANGUAGE';
select value into loc from nls_database_parameters where parameter='NLS_TERRITORY';
select value into charset from nls_database_parameters where parameter='NLS_CHARACTERSET';
-- Sure that :set serveroutput on
DBMS_OUTPUT.PUT_LINE(langs||'_'||loc||'.'||charset);
end get_nls;
1).SQL中执行如下,即可查出:
SQL> execute get_nls();
AMERICAN_AMERICA.AL32UTF8
2).如果没有显示,请设置数据库为显示输出为ON,如下:
SQL> set serveroutput on
3.涉及到NLS信息的视图有: nls_database_parameters,nls_instance_parameters,nls_session_parameters也可查询参考。
4.设置客户端的字符集,打开注册表:找到如下相关项:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
找到LAST HOME如:HOME0
修改HOME0中的NLS_LANG 为查出的字符集:AMERICAN_AMERICA.AL32UTF8
正文
Oracle PL/SQL NLS查询及设置2005-04-20 11:36:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/xueyb/650.html
阅读(5730) | 评论(0)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论