PL/SQL 编写查询语句时LIKE中文不起作用

在使用PL/SQL时经常出现SELECT表时,明明有符合条件的数据,但是在WHERE语句中的LIKE中文查询不到结果。

解决办法如下:

1、打开一个SQL Window 执行查询语句“select * from v$nls_parameters ;”得到查询结果如下,

1
NLS_LANGUAGE AMERICAN

2 NLS_TERRITORY
AMERICA

3 NLS_CURRENCY
$

4 NLS_ISO_CURRENCY
AMERICA

5 NLS_NUMERIC_CHARACTERS
.,

6 NLS_CALENDAR
GREGORIAN

7 NLS_DATE_FORMAT
DD-MON-RR

8 NLS_DATE_LANGUAGE
AMERICAN

9 NLS_CHARACTERSET
AL32UTF8

10 NLS_SORT
BINARY

11 NLS_TIME_FORMAT
HH.MI.SSXFF AM

12 NLS_TIMESTAMP_FORMAT
DD-MON-RR HH.MI.SSXFF AM

13 NLS_TIME_TZ_FORMAT
HH.MI.SSXFF AM TZR

14 NLS_TIMESTAMP_TZ_FORMAT
DD-MON-RR HH.MI.SSXFF AM TZR

15 NLS_DUAL_CURRENCY
$

16 NLS_NCHAR_CHARACTERSET
AL16UTF16

17 NLS_COMP
BINARY

18 NLS_LENGTH_SEMANTICS
BYTE

19 NLS_NCHAR_CONV_EXCP
FALSE

2、注意上述加粗字体部分。然后在设置本地Windows环境变量,分别加入如下两个环境变量。

NLS_CHARACTERSET = AL32UTF8

NLS_LANG = AMERICAN_AMERICA.AL32UTF8

3、重启PL/SQL即可。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-06 07:16:49

PL/SQL 编写查询语句时LIKE中文不起作用的相关文章

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?

如何在SQL Server查询语句(Select)中检索存储过程(Store Procedure)的结果集?(2006-12-14 09:25:36) 与这个问题具有相同性质的其他描述还包括:如何在SQL Server存储过程中获取另一存储过程的执行结果记录集?如何在存储过程中检索动态SQL语句的执行结果?如何实现类似SELECT * FROM (EXEC procedure_name @parameters_var) AS datasource ... 的功能?procedure_

python 3 mysql sql逻辑查询语句执行顺序

python 3 mysql sql逻辑查询语句执行顺序 一 .SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <havin

MySQL 抓取SQL慢查询语句

当MySQL服务器出现异常(慢),首先要考虑是否因,SQL语句引起数据库慢,如果情况比较紧急,我们就要立刻 SHOW FULL PROCESSLIST; 去查看,但我建议大家使用-e参数,采用非交互的方式,因为这样可以使用grep等命令,对结果进行过滤,更方便直观的看到结果 一.抓SQL慢查询语句的方法,有2种: 1,临时紧急抓取 通过SHOW FULL PROCESSLIST; 的方式,执行几次,有相同语句,就可能是SQL慢查询语句: SHOW FULL PROCESSLIST; #查看MyS

PL/SQL的if语句的执行顺序

PL/SQL的if语句的语法定义如下: IF condition THEN {...statements...} ELSIF condition THEN {...statements...} ELSE {...statements...} END IF; 由于PL/SQL不像高级语言,没有大括号,如果statements中包含了多个操作,这些操作是否都会执行呢? 下面写了一个函数做一个实验,来验证if语句的执行顺序: <span style="font-size:18px;"&

mysql第四篇--SQL逻辑查询语句执行顺序

mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition&g

SQL模糊查询语句

SQL模糊查询语句: SQL模糊查询,使用like比较字,加上SQL里的通配符,请参考以下: 1.LIKE'Mc%' 将搜索以字母 Mc 开头的所有字符串(如 McBadden). 2.LIKE'%inger' 将搜索以字母 inger 结尾的所有字符串(如 Ringer.Stringer). 3.LIKE'%en%' 将搜索在任何位置包含字母 en 的所有字符串(如 Bennet.Green.McBadden). 4.LIKE'_heryl' 将搜索以字母 heryl 结尾的所有六个字母的名称

pl/sql常用判断语句

语句一: IF-THEN IF 条件 THEN 执行语句 END IF; 语句二: IF-THEN-ELSE IF 条件 THEN 执行语句 ELSE 执行其他语句 END IF; 语句三: IF-THEN-ELSIF IF 条件1 THEN 执行语句1 ELSIF 条件2 THEN 执行语句2 ELSE 执行其他语句 END IF; pl/sql常用判断语句

PL/SQL中查询Oracle大数(17位以上)时显示科学计数法的解决方法

PL/SQL查询时,如果Number(17)以上的大数,会显示为科学计数法 解决方法: TOOLS->PREFERENCES->WINDOW TYPE->SQL WINDOW下选中Number fields to_char即可. 原文地址:https://www.cnblogs.com/mingforyou/p/8342692.html

[Oracle系列整理01]PL/SQL 基本查询与排序

本课重点:    1.写SELECT语句进行数据库查询    2.进行数学运算    3.处理空值    4.使用别名ALIASES    5.连接列    6.在SQL PLUS中编辑缓冲,修改SQL SCRIPTS    7.ORDER BY进行排序输出.    8.使用WHERE 字段. 一.写SQL 命令:      不区分大小写.      SQL 语句用数字分行,在SQL PLUS中被称为缓冲区.      最后以:或 / 结束语句.      也可以用RUN来执行语句 二.例1: