PL/SQL复制中文出来变成乱码

本文介绍了一种解决PL/SQL查询结果中中文显示为乱码的问题。问题的根源在于Windows XP系统的输入法设置,通过调整输入法设置可以有效解决乱码问题。

pl/sql查询中文出来,是能够正确显示,但是复制出来到电脑上 ,中文就变成乱码。

有很多人认为是字符集的问题,有人说是数据库字符集设置问题。等等

实际上是 window xp 输入法设置问题

我在语言设置栏里面,只保留了英文,美式键盘,和google拼音输入。删除美式键盘,添加中文键盘

结果就好了!

select ÄêÔ , ±àÂë , ²¿ÃÅ , ÐÕÃû , ³öÇÚÌìÊý , ²¡¼ÙÌìÊý , ʼÙÌìÊý , ÆäËû¼ÙÆÚÌìÊý , ¼Ó°àÌìÊý , ¹¤×ʱê×¼ , ¿¼ºË±ÈÖØ , ¿¼ºËϵÊý , ¿¼ºË¹¤×Ê , »ù±¾¹¤×Ê , Ö°Îñ¹¤×Ê , ¼Ó°à¹¤×Ê , Ô·ݽ±½ð , ²¡¼Ù¿Û¿î , ʼٿۿî , ÑøÀϱ£ÏÕ , ʧҵ±£ÏÕ , Ò½ÁƱ£ÏÕ , ס·¿¹«»ý½ð , ²¹¿Û¹¤×ʲîÒì , ˰ǰ¹¤×Ê , Ӧ˰¹¤×Ê , ¸öÈË˰¿Û¿î , ¸öÈË˰¿Û¿î1 , ËÞÉá¿Û¿î , ÊÖ»ú¿Û¿î , ÆäËû²¹¿Û¿î , ʵ·¢¹¤×Ê , ¹¤×ʱê×¼ - nvl ( Ö°Îñ¹¤×Ê , 0 ) ¹¤×Ê_bas , ·¢Ð½ÈÕÆÚ , ±¸×¢ , ¹«Ë¾ from ½¨´ïÀ¶µÂн×ʵ¥ A , SALARY_PRINT B where a . ±àÂë = b . badge_no and b . print = 'Y' and a . ÄêÔ = nvl ( : ÊäÈëÄêÔ , a . ÄêÔ ) and a . ²¿ÃÅ = nvl ( : ÊäÈ벿ÃÅ , a . ²¿ÃÅ ) and a . ±àÂë = nvl ( : ÊäÈë±àºÅ , a . ±àÂë ) order by ²¿ÃÅ , ±àÂë

税工资 , 个人税扣款 , 个人税扣款1 , 宿舍扣款 , 手机扣款 , 其他补扣款 , 实发工资 , 工资标准 - nvl ( 职务工资 , 0 ) 工资_bas , 发薪日期 , 备注 , 公司 from 建达蓝德薪资单 A , SALARY_PRINT B where a . 编码 = b . badge_no and b . print = 'Y' and a . 年月 = nvl ( : 输入年月 , a . 年月 ) and a . 部门 = nvl ( : 输入部门 , a . 部门 ) and a . 编码 = nvl ( : 输入编号 , a . 编码 ) order by 部门 , 编码

[@more@]

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

转载于:http://blog.itpub.net/22934571/viewspace-1046069/

PL/SQL中遇到中文显示乱码的问题,通常是因为字符编码设置不一致导致的。要解决这个问题,可以通过调整数据库的字符集设置,确保数据库连接和环境变量中的编码设置正确。下面提供了一些解决方法: 1. 检查并设置数据库字符集:确保数据库采用的字符集支持中文字符。可以通过SQL语句查询当前数据库字符集,如果需要,可以修改为支持中文的字符集,例如使用UTF-8。以下是检查和修改字符集的SQL语句示例: ``` -- 查看当前字符集 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; -- 修改字符集(需要重启数据库) ALTER DATABASE CHARACTER SET UTF8; ``` 2. 设置客户端字符集环境:在连接数据库之前,确保客户端使用的字符集与数据库一致。如果你使用的是SQL*Plus或者SQL Developer等工具,可以在启动这些工具之前设置环境变量。 ``` -- 在Windows环境,可以在命令行中设置环境变量 set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 -- 在Linux或Unix环境,可以在终端中设置 export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 ``` 3. 在PL/SQL Developer中设置字符集:如果你使用PL/SQL Developer软件,可以通过以下步骤设置字符集: - 打开PL/SQL Developer,选择菜单 Tools > Preferences。 - 在弹出的窗口中找到 Database > NLS。 - 在 NLSRTL Encoding 输入框中输入 UTF8 或者其他支持中文的编码。 - 重启PL/SQL Developer使设置生效。 4. 在Oracle SQL*Plus中设置字符集:如果你使用的是SQL*Plus,可以在连接到数据库之前,设置NLS_LANG环境变量。 ``` -- 在SQL*Plus中设置NLS_LANG环境变量 SET NLS_LANG AMERICAN_AMERICA.UTF8; ``` 5. 检查并修改数据库会话字符集:有时需要在会话级别设置字符集,可以使用以下SQL命令: ``` -- 设置会话级别的字符集 ALTER SESSION SET NLS_LANGUAGE='AMERICAN'; ALTER SESSION SET NLS_TERRITORY='AMERICA'; ALTER SESSION SET NLS_CHARACTERSET=UTF8; ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值