Home PLSQL无法使用like查询,无法查询中文
Post
Cancel

PLSQL无法使用like查询,无法查询中文

问题描述

  1. 中文乱码。
  2. 中文显示没有乱码,中文作为条件无法查询。
  3. like无法查询出中文内容。

问题原因

以上三种情况是因为Oracle客户端和服务器端的编码方式不一样导致。

解决办法

首先要查询Oracle服务器的语言、地域和字符集,然后将查询结果设置为本地的环境变量:NLS_LANG,具体如下:

  1. 查询Oracle服务器的语言、地域和字符集

    1
    
     select * from nls_database_parameters;
    

    查询结果中:

    • NLS_LANGUAGE表示语言
    • NLS_TERRITORY表示地域
    • NLS_CHARACTSET表示字符集

    将他们三个按照语言_地域.字符集的格式拼接起来,就有了AMERICAN_AMERICA.AL32UTF8(注意:这里要根据你自己的Oracle服务器的这三个值进行拼接)

  2. 设置本地环境变量(PLSQL优先从环境变量中获取属性),右击我的电脑 -> 属性 -> 高级系统设置-> 环境变量 -> 系统变量栏,新增如下记录:

    1
    
     NLS_LANG = AMERICAN_AMERICA.AL32UTF8
    
This post is licensed under CC BY 4.0 by the author.