ORACLE 问题的条件信息包括查询问题

初次装好PL/SQL,查询
1,select * from basecar
--查询出来的结果中文全部为?
2,select * from basecar where truck_number='京AS888'
--肯定是有数据的,但查不到,只要有中文就查不到
百度的结果是数据库服务器端和客户端字符集不一致导致的。
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货币,数字,和日历自动适应本地化语言和平台。
影响oracle数据库字符集最重要的参数是NLS_LANG参数。
它的格式如下:   NLS_LANG = language_territory.charset
它有三个组成部分(语言、地域和字符集),每个成分控制了NLS子集的特性。
Language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK
从NLS_LANG的组成我们可以看出,真正影响数据库字符集的其实是第三部分。
所以两个数据库之间的字符集只要第三部分一样就可以相互导入导出数据,前面影响的只是提示信息是中文还是英文。
如果检查的结果发现server端与client端字符集不一致,请统一修改为同server端相同的字符集。
查询服务器端的字符集
select userenv('language') from dual;
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
最重要的就是就是这个ZHS16GBK
客户端的字符集,我在注册表(HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraClient11g_home1)中也没找到NLS_LANG,就当它与服务器端不一样吧。
问题解决方法:
1,设置环境变量,NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
2,重启PL/SQL,上面两个SQL查询就正常了。
但是还有其他问题...
项目需要,在windows服务中调用SQL查询,查询条件有中文,查不到数据,直接执行exe应用程序却可以查到数据,想不明白为什么...
不明白也要继续,在注册表中创建字符串值NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
然后服务sql查询就正常了。
所以,简单、一步到位的做法就是在注册表中修改。
oracle查询条件存在中文查询不到结果
PLSQL显示乱码-无法进行中文条件查询解决
PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起。类似乱码问题都可以从编码是否...
oracle中查询中文字段查询不出的问题
今天在学习项目的过程中,遇到了一个问题,使用plsql对数据库进行查询时,查询条件为中文的怎么都查询不出来。就比如说是select * from student t where
t.xingm=‘...
解决Oracle
查询条件带中文
1. 查询Oracle服务端字符集编码,获取NLS_CHARACTERSET字段值:
select * from v$nls_parameters
保存查询到的值,如:NLS_C...
在plsql, sql语句中带有中文的查询条件查询不到数据
只要简单的添加一个系统变量就ok了NLS_LANG=AMERICAN_AMERICA.AL32UTF8具体操作方法:右击“计算机”-“属性”-“高级系统设置”-“环境变量”,在系统变量下,“新建”
SQL语句查询时有字段为中文时的解决方法
转载自:http://www.cnblogs.com/sp2012/archive//2465715.html
解决SQL语句中含有中文字符无法查询问题
悬赏园豆:20 [已解决问题] 浏览: 372次
sql 语句如下:
string sql = string.Format(@&SELECT FHANDLEDATE,FNAME...
遇到一个很奇怪的现象,
.net程序访问oracle,查询条件中有汉字时
在我本机开发环境中运行可以查出结果,部署到服务器上返回结果就是空。 服务器与我本地连接的是同一台服务器上的同一...
* 在姓名表中查询:
2 . 姓名是三个字的姓名
3 . 性别为女
4 . 在2000年后出生...
转载:https://blog.csdn.net/gwd/article/details/最近在写代码的过程中发现这么一个问题:使用mybatis查询数据库是涉及到...
在环境变量中加入:
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
一般就可以解决了
如果不行,再试下加环境变量:
NLS_CHARACTERSET = AL32UT...
没有更多推荐了,扫一扫体验手机阅读
Oracle条件查询语句-where
<span type="1" blog_id="2093050" userid='
18篇文章,8064人气,0粉丝
MySQL全通晓
¥51.00126人订阅
高并发架构之路
¥51.00157人订阅子查询中小括号,子查询要用()包起来
select * from emp where sal&(select * from emp where ename=’likang’)
Oracle子查询书写风格
缩紧、对齐、换行等等,便于观察
Oracle可以使用的位置:
可以在where、select、having、from之后使用子查询
如果查询的时候有其他字段,就必须为单行子查询。
select ename,sal,dept (select comm from emp where ename=’likang’)--其中select comm from emp where ename=’likang’必须返回一条数据
where 与having的区别一般使用where进行,但是如果出现主函数就必须使用having进行判断
oracle中不可以在group by后使用子查询
from后的子查询:
子查询返回的也是一个新表
主查询与子查询的可以不是同一个表,只要子查询查询的结果在主查询可以使用即可。
如果不考虑多表查询产生的笛卡尔积,那么多表查询要好于子查询,但是具体问题要具体对待。
一般不在子查询中使用排序,但是在Top-N分析问题中必须使用子查询排序
–rownum 行号伪列,如果要使用伪列,就必须在数据查询语句中显示调用。select rownum,ename,--rownum
行号永远按照默认的顺序生成,不会根据字段排序的改变而改变.只能使用&、&=
roenum,ename,salfrom(select * from emp order by sal desc) where rownum &=3;--在使用的时候先排序,在把排序后的结果返回,当作一个新表,最后在新表上操作rownum.
一般先执行子查询在进行主查询,但是相关子查询例外(把主查询的值作为参数传递到子查询中)
查询工资大于本部门平均工资的员工
找出本部门平均工资2.比较
select empno,ename,sal , select avg(sal) from emp
where deptno=e.deptno) avgsal from emp ewhere sal&(select avg(sal) from emp where deptno=e.deptno) ;—注意这里是给主查询的表建立别名,利用别名在子查询中使用。
单行子查询只能使用单行操作符,多行子查询只能使用多行操作符
单行操作符:=、&、& 、&= 、&=、&&
多行操作符: in,any,all
10. 子查询的null问题
单行子查询不返回任何行,所以不会得到结果。
只要子查询查询的有空值,不能使用not in .a not in (10,20,null) 等价于a !=10 and a!=20and a!=null//判断为空不是!=null 所以会A!=null永远为假。
In =any //not in=all
oracle子查询和表连接
有如下两张表:部门表和教师表
1、查询出招生部门所有男老师姓名(子查询放在where语句中)
select tname, deptno from teacher where deptno in (...
子查询作为数据源时是否需要表别名
在sqlserver2008中,把子查询做为数据源时,如果没有表别名,将会提示错误,如下:
如果添加了表别名,如加了个“a”,则正确查询:
Oracle中子查询
1.单行子查询
select * from emp
where sal & (select sal from emp where empno & 7876);
2.子查询空值/多值问题
如果子查询未...
【Oracle】Oracle的子查询——单行子查询和多行子查询;
1、查询部分分为主查询和子查询;
2、根据返回值的记录多少分为单行子查询和多行子查询;单行子查询用单行比较符=连接;多行子查询用多行比较符in连接;
3、子查询的内容可以放在FROM后面,也可以放...
Oracle子查询
Oracle基础内容:子查询(单行、any、all),子查询在SELECT、UPDATE、DELETE语句内部可以出现SELECT语句。内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也...
子查询=简单查询+限定查询+多表查询+统计查询的综合体
多表查询性能差,替代方案:子查询,所谓的子查询指的是在一个查询之中嵌套了其他的若干查询,嵌套子查询之后的查询SQL语句如下:
多行返回:
IN/ANY/ALL
&ANY:高于最低值;
&ALL:高于最高值;
子查询中可以使用
子查询可以用于...
这里用到了三个表,emp,dept,salgrade
1、为什么要有子查询
bg:查询工资比scott高的员工信息
查询scott的工资
SQL& select sal from emp where ename = 'SCOTT';
单行子查询
只返回一行一列数据的子查询被称为单行子查询。单行子查询语句可以使用在主句的where字句中、having 子句中和from子句中
1、where子句中是使用子查询
没有更多推荐了,& 著作权归作者所有
人打赏支持
码字总数 297792
参考下这个:https://faceghost.com/article/963411
引用来自“天天天”的评论不便于移植我已经给出各个主流数据库的解决方案了。^_^其实像各个库的分页这种语法不是也有不便于移植的问题么。呵呵
不便于移植
评论删除后,数据将无法恢复
有时候我们需要按照in条件里的id顺序输出结果,可sql语句在不加order by的时候是按照asc排序的,下边的sql解决按照in条件顺序的id输出查询结果 MySQL写法: SELECT * FROM EVENT WHERE event...
Oracle: oracle对无order by的语句返回的结果不进行排序,oracle此时的处理方式是按照数据的物理存储顺序来读取数据。因为rowid是每行数据的地址,所以有时候看起来会像是使用rowid排序的。但...
提一个问题: oracle在order by 排序时,是稳定排序算法吗? 发现用一个type进行排序后,做分页查询,第一页的数据和第二页的数据有重复 怀疑是order by 时,两次排列的顺序不一致 看到业务描...
最近在做系统时用到了随机抽取记录的问题; 上网上查找了很多相关资料,发现了不同的方法及其差异。都是基于ORACLE的方法哦 首先第一个是随机抽取6个 select from (select from tablename o...
对于Oracle的rownum问题,很多资料都说不支持&,&=,=,between……and,只能用以上符号(&、&=、!=),并非说用&,&=,=,between……and 时会提示SQL语法错误,而是经常是查不出一条记...
没有更多内容
加载失败,请刷新页面
最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...
一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...
参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...
Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...
日期与时间 LocalDate 创建一个LocalDate对象并读取其值 // 根据年月日创建日期LocalDate date1 = LocalDate.of();// 读取System.out.println(date1.getYear()); // 2014Sys...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定取消删除此文章吗?
亲,自荐的博客将通过私信方式通知管理员,优秀的博客文章审核通过后将在博客推荐列表中显示
确定推荐此文章吗?
确定推荐此博主吗?
聚合全网技术文章,根据你的阅读喜好进行个性推荐
指定官方社区
深圳市奥思网络科技有限公司版权所有数据库是Oracle 10g 32位。 客户端1是Oracle 10g 64位Client。 客户端2是Oracle 10g 32位Client。 & (1)使用客户端1查询。 查询条件中带有汉字时查询不出数据。 (2)使用客户端2查询 查询条件中带有汉字时能查询出数据。 & 原因: 排查原因:初步怀疑是字符集设置的问题。 查看客户端2的注册表,字符集NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK 查看客户端1的注册表,字符集NLS_LANG是空。 & 将客户端1的注册表,字符集NLS_LANG修改为SIMPLIFIED CHINESE_CHINA.ZHS16GBK。 再次查询,OK,解决问题。
阅读(...) 评论()

我要回帖

更多关于 问题的条件信息包括 的文章

 

随机推荐