❶ 如何解决PL/sql导出Oracle的数据为乱码的问题
先问一下:你屏幕上出现的结果显示的是乱码吗?
一般来说,你这情况是因为数据库服务器和客户端字符集不匹配,执行sqlplus的机器就是客户端,服务器和客户端也可能是一台机器,执行sqlplus之前要先设置客户端的字符集,在linux上:export NLS_LANG=.......
在windows上set NLS_LANG
查询数据库字符集:select property_value from database_properties where property_name like 'NLS_CHAR%';
比如查询结果是:ZHS16GBK
那你在sqlplus之前要设置:export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
然后再登录sqlplus用spool生成数据
❷ plsql提示和Oracle字符集不一致,注册表修改后,进入cmd下数据库汉字会乱码。 求大神帮助 困扰好几天了
是不是client有问题?,重新安装,选择最大的那个类型。
oracle11g中应该是700多M那个
❸ 视图迁移到oracle之后,出现字符集不匹配问题!
那就把视图重新编译下呗,看看出什么错啊!
sqlserver迁移到ORACLE最好用oracle官方的工具sqldeveloper,不过就算是sqldeveloper也不可能百分百的转换OK,好多东西还是要手动去修正下!
❹ oracle数据库(PLSQL)导入.sql文件出错:无效的字符集
file--new--command
window,打开后执行:@目录:\wj.sql;
然后回车。例如文件在e盘,就是
@e:\wj.sql;
❺ 在ORACLE查询出来的结果凡是中文的都是乱码 ,用pl/sql亦如此,该如何解决呢
数据是怎么来的是导入还是客户端录入的
如果是导入的那就是你导入数据的字符集和导入的oracle的字符集不一致,那就修改数据库的字符集重新导入数据
如果是客户端录入的那就是客户端的字符集和oracle的不一致 有两个办法一是修改客户端的代码使客户端的字符集和oracle一致,二是修改数据库的字符集重新录入数据
❻ ORACLE sql 语句插入时间 总是提示 文字与格式字符串不匹配
第一个日期,怎么能用to_char呢?
INSERT INTO zo_proct VALUES(SEQ_ZO_PRODUCT.NEXTVAL,'图书','民国藏书',999,998, trunc(sysdate), to_date( '2013-1-1 00:00:00 ', 'YYYY-MM-DD HH24:MI:SS '),1);
❼ 失败原因:执行SQL失败,失败原因:批处理中出现错误: ORA-00911: invalid character
应该是错误输入了全角字符,输入半角字符就行了。
错误信息ORA-00911: invalid character说明了在执行的SQL语句中出现了无效字符,所在SQL语句无法通过语法分析过程导致了错误结果。
可能出现的原因有:错误地输入了全角字符,比如输入了全角逗号。
如果使用C++、Java、C#等编程时,总会习惯在语句最后加分号,而这个符号在SQL中是无效字符。
实际语句和列类型不匹配,比如将数值列赋值为字符串。
与display函数不同,display_cursor显示的为真实的执行计划。
对于format参数,使用与display函数的各个值,同样适用于display_cursor函数。
当statistics_level为all或使用gather_plan_statistics提示可以获得执行时的统计信息。
根据真实与预估的统计信息可以初步判断SQL效率低下的原因,如统计信息的准确性、主要的开销位于那些步骤等。
看你的sql语句最后是否有分号,有的话去掉就行 看你Oracle服务器端字符集是否和Oracle客户端字符集匹配。
查询oracle server端的字符集:SQL>select userenv(‘language’) from al。
查询oracle client端的字符集。在windows平台下,就是注册表里面相应OracleHome的NLS_LANG。
还可以在dos窗口里面自己设置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK。
❽ oracle这个sql怎么不对,报“文字格式与字符串不匹配”
一般出现此类问题是将日期型的字段中插入了字符型的数据,导致数据库不可识别而报错。
如:有如下test表
123createtabletest(idint,begin_datedate);现在执行插入语句:
1insertintotestvalues(1,'2015-01-01');则会报错:
如果正确插入,则要将字符型数据转成日期型数据:
1insertintotestvalues(1,to_date('2015-01-01','yyyy-mm-dd'));❾ 查询 SQL语句的时候 出现oracle ora 01861 文字与字符串格式不匹配 百思不得其解!
你自己写错了,
TO_CHAR(IM.INFO_MAGA_CREATE_TIME, 'YYYY-MM-DD') AS T_INFO_MAGA_CREATE_TIME,
TO_DATE('2013-02-01', 'YYYY-MM-DD')
他们怎么恩那个对比呢?一个CHAR.一个DATE
要不你转换上面的TO_CHAR为TO_DATE
要不你转换下面的TO_DATE为 TO_CHAR
你的SQL 真。。。。乱