一、故障现象反馈

开发人员反馈系统查询不显示数据,但是使用PL/SQL developer调用相同的SQL可以查到数据。

二、问题排查

1.咨询开发人员是否执行相关事务未提交,确认未有相关事务执行。

2.使用SQLPlus在数据库后台查询反馈的SQL,同样无法查询到数据。SQL调用的是一个视图,在用SQLPlus查询,该视图返回0条数据,但是PL/SQL Developer返回6万多条数据。

SQL> SELECT COUNT(*) FROM APP_ADJ_HEADERS_V;

COUNT(*)

----------

0

3.查看视图的创建语句,发现有如下内容:

where

aa.LANGUAGE = USERENV('LANG')

bb.LANGUAGE = USERENV('LANG')

三、问题分析

根据视图的创建语句过滤条件可知,如果aa.LANGUAGE = USERENV('LANG')和bb.LANGUAGE = USERENV('LANG')不满足,则不返回数据。

而USERENV('LANG')的取值是根据当前会话的NLS_LANGUAGE返回的。

当NLS_LANGUAGE为AMERICAN时,值为US。

当NLS_LANGUAGE为SIMPLIFIED CHINESE时,值为ZHS。

SQL> alter session set nls_language="AMERICAN";

Session altered.

SQL> select userenv('lang') from dual;

USERENV('LANG')

----------------------------------------------------

US

SQL> alter session set nls_language="SIMPLIFIED CHINESE";

会话已更改。

SQL> select userenv('lang') from dual;

USERENV('LANG')

----------------------------------------------------

ZHS

四、参考学习

由NLS_LANGUAGE指定的这种语言用于messages, day and month names, symbols for AD, BC, a.m., and p.m以及默认的排序机制。 此参数还确定参数NLS_DATE_LANGUAGE和NLS_SORT的默认值。

NLS_LANGUAGE参数的值用于初始化此参数的会话值,该值是SQL查询处理引用的实际值。 如果客户端使用Oracle JDBC驱动程序或客户端基于OCI并且定义了NLS_LANG客户端设置(环境变量),则此初始值将被NLS_LANG覆盖。 因此,通常会忽略初始化参数值。

NLS_LANG=NLS_LANGUAGE+NLS_TERRITORY+NLS_CHARACTERSETNLS

作用优先级:SQL FUNCTION>alter session>环境变量或注册表>参数文件>数据库默认参数

相关视图:nls_database_parameters、nls_instance_parameters、nls_session_parameters

五、解决办法

修改应用端的NLS_LANG的配置与SQL保持一致

export NLS_LANG="SIMPLIFIED CHINESE_AMERICA.AL32UTF8"

#注意永久保存要写入环境变量中

SQL> SELECT COUNT(*) FROM APPS_ADJ_HEADERS_V;

COUNT(*)

----------

0

SQL> alter session set nls_language='SIMPLIFIED CHINESE';

会话已更改。

SQL>  SELECT COUNT(*) FROM APPS_ADJ_HEADERS_V;

COUNT(*)

----------

63579

oracle查询nls_language,NLS_LANGUAGE配置导致应用查询不到数据相关推荐

  1. oracle分页置顶,[置顶]       ibatis查询oracle分页

    开发采用spring+struts+ibatis+extjs,数据库用oracle ibtais配置分页 模糊查询 Java代码 bmzdm LIKE '%$objCondition.bmzdm$%' ...

  2. Oracle性能误区--MTS,RAC,分区,并行查询

    Oracle性能误区--MTS,RAC,分区,并行查询 学习一项新的东西前需要理解其目的,下面这篇文章侧面介绍了ORACLE中RAC等4个组件的优缺点,以供日后参考.下面为文章全文: 为了提高性能,我 ...

  3. oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示

    <Oracle 高性能SQL引擎剖析:Oracle SQL 优化与调优技术详解>一书的附录部分.作为对该书的补充,帮助读者理解和掌握"提示"这一项在SQL优化中使用的这 ...

  4. oracle 11g circuits 参数,递归:在 Oracle Database 11g 第 2 版中查询层次结构数据

    开发人员:SQL 递归: 在 Oracle Database 11g 第 2 版中查询层次结构数据的快速入门 作者:Tim Hartley 2010 年 2 月发表 递归数据库处理,也称为材料清单 或 ...

  5. rowbounds分页oracle,Oracle使用MyBatis中RowBounds实现分页查询功能

    Oracle中分页查询因为存在伪列rownum,sql语句写起来较为复杂,现在介绍一种通过使用MyBatis中的RowBounds进行分页查询,非常方便. 使用MyBatis中的RowBounds进行 ...

  6. 日常工作问题解决:centos7下配置网卡以及查询网卡UUID

    日常工作问题解决:centos7下配置网卡以及查询网卡UUID 参考文章: (1)日常工作问题解决:centos7下配置网卡以及查询网卡UUID (2)https://www.cnblogs.com/ ...

  7. 怎样学好Oracle子查询,Oracle学习(六):子查询

    Oracle学习(6):子查询 子查询 为何要用子查询 SQL> --查询工资比SCOTT高的员工信息 SQL> --1. 知道SCOTT的工资 SQL> select sal fr ...

  8. mybatis一级缓存导致sql查询出现问题

    如下代码: PubPsndoc pubdoc = pubPsndocDAOService.selectByPrimaryKey(in.id);pubdoc.setPkCorp(newpkcorp);p ...

  9. PHP的mongo扩展版本过低导致无法查询

    PHP的mongo扩展版本过低导致无法查询,错误如下: Fatal error: Uncaught exception 'MongoCursorException' with message 'cou ...

最新文章

  1. 昨天,我用 Python 写了一个婚介模型
  2. 内核电源管理器已启动关机转换_Linux系统启动流程
  3. sqlserver 性能问题
  4. stm32 can bus 总结
  5. PowerShell管理Azure
  6. 禁止更改计算机名_【复习收藏】计算机操作系统考点归纳
  7. 盒马鲜生,快而准确的秘密!
  8. micropython 实时音频传输_在线实时合唱的实现原理与难点是什么?
  9. 【CF1047D】Little C Loves 3 II【构造】【赛瓦维斯特定理】
  10. 《论文笔记》Cooperative Multi-Robot Monocular-SLAM using Salient Landmarks
  11. NameError: name ‘List‘ is not defined
  12. C# 用正则表达式替换字符串中所有特殊字符
  13. 03. Use const whenever possible
  14. Picasso,Glide,Fresco对比分析
  15. [Hadoop]Hive r0.9.0中文文档(二)之联表查询Join
  16. Excel数据线性回归
  17. oracle 创建新的表空间,oracle创建表空间新建新用户并受权
  18. cesium添加天地图,从环境配置到加载天地图
  19. python数据分析与可视化答案学堂云_智慧树知到_Python数据分析与数据可视化_最新答案...
  20. Python开发【模块】:Urllib(二)

热门文章

  1. 闭门分享实录:100位产品经理“拷问”罗辑思维创始人快刀青衣
  2. 电脑端调试钉钉H5应用
  3. LayaAir 绘制微信小游戏开放数据域画面
  4. 杨老师课堂_Java教程第四篇之数组运用
  5. 将js/css脚本放到png图片中的实践。
  6. NURBS曲面拟合、平滑、网格控制点反算、法面误差计算一网打尽,解决曲面加工、蒙皮、逆向工程、叶片拟合问题
  7. serdes channel bonding
  8. pygame实现有趣的飞机塔防游戏,有兴趣了解一下吗?
  9. 【操作系统】2、进程管理
  10. 关于IA-32过程调用和其中的push、leave、ret指令