如何将Oracle数据库中的UTF-8格式数据转换为文本文件

如何将Oracle数据库中的UTF-8格式数据转换为文本文件,第1张

概述如何将UTF-8格式数据从Oracle数据库转换为文本文件,所有UTF-8字符都正确输出,例如中文字符. 我试图从启用了UTF-8的Oracle数据库假脱机数据并尝试将相同的数据假脱机到txt或cvs.而不是我得到的汉字????. 我知道这个问题早先被问过,但没有给出答案,因此再次重新提出这个问题. 批量程序: sqlplus snprn/SpotProd_07@SPOTDEV_VM.WORLD 如何将UTF-8格式的数据从Oracle数据库转换为文本文件,所有UTF-8字符都正确输出,例如中文字符.

我试图从启用了UTF-8的Oracle数据库假脱机数据并尝试将相同的数据假脱机到txt或cvs.而不是我得到的汉字????.

我知道这个问题早先被问过,但没有给出答案,因此再次重新提出这个问题.

批量程序:

sqlplus snprn/SpotProd_07@SPOTDEV_VM.WORLD @C:\BatchJob\SPOTReport\spotreport.sqlrem sqlplus snprn/SpotProd_07@lprodspot @C:\BatchJob\SPOTReport\spotreportrecovery.sqlrem copy Spot_Item_details*.* C:\BatchJob\SPOTReport /ycopy Spot_Item_details*.* C:\BatchJob\SPOTReport /yrem xcopy Spot_Item_details*.* backup /yrem del Spot_Item_details*.*

sql代码:

SET heading ONSET FeedBACK    OFFSET ECHO    OFFSET linesIZE    5000SET PAGESIZE    0SET TRims   ONSET ARRAYSIZE   5ColUMN extract_date NEW_VALUE _dateSELECT TO_CHAR(SYSDATE,'RRRRMMDD') extract_date FROM   DUAL;SPOol D:\SPOT2\BatchJob\SPOTReport\Spot_Item_details_daily_&_Date.txtSelect 'SPOT#'||'^'||'STATUS'||'^'||'APPLY DATE'||'^'||'MANAGER SIGNOFF'||'^'||'SNP OPS SIGNOFF'||'^'||'GP SIGNOFF'||'^'||'DIR SIGNOFF'||'^'||'SCM SIGNOFF'||'^'||'ITEM NO'||'^'||'ISMARTS SKU'||'^'||'MANUFACTURER SKU'||'^'||'COUNTRY'||'^'||'disTRIBUTOR'||'^'||'disTRIBUTOR STD PRICE EX GST'||'^'||'disTRIBUTOR FINAL PRICE EX GST'||'^'||'DELL PRICE EX GST'||'^'||'QTY required'||'^'||'CURRENCY'||'^'||'liCENSE PACKAGE'||'^'||'MSliCENSE'||'^'||'MSSOFTWARE'From Dual;Select distinct SSR_REFNO||'^'||SSR_STATUS||'^'||SSR_APPLY_DATE||'^'||TO_CHAR(SSR_MAN_DATE,'DDMONRRRR HH24:MI:SS')||'^'||TO_CHAR(SSR_ORT_DATE,'DDMONRRRR HH24:MI:SS')||'^'||TO_CHAR(SSR_GP_DATE,'DDMONRRRR HH24:MI:SS')||'^'||TO_CHAR(SSR_DIR_DATE,'DDMONRRRR HH24:MI:SS')||'^'||TO_CHAR(SSR_SCM_DATE,'DDMONRRRR HH24:MI:SS')||'^'||REPLACE(SSR_ITEM_NO,chr(10),'')||'^'||REPLACE(SSR_ISMARTS_SKU,'')||'^'||REPLACE(SSR_MANUFACTURER_SKU,'')||'^'||REPLACE(SSR_COUNTRY,'')||'^'||REPLACE(SSR_disTRIBUTOR,'')||'^'||REPLACE(SSR_MANF_STD_COST_EX_GST,'')||'^'||REPLACE(SSR_MANF_COST_EX_GST,'')||'^'||REPLACE(SSR_DELL_PRICE_EX_GST,'')||'^'||REPLACE(SSR_QTY_required,'')||'^'||REPLACE(SSR_CURRENCY,'')||'^'||REPLACE(SSR_liCENSE_PACKAGE,'')||'^'||REPLACE(SSR_MSliCENSE,'')||'^'||REPLACE(SSR_MSSOFTWARE,'')From SPOT_SNP_REPORtWhere SSR_REFNO like 'FSPOT-%' and SSR_ITEM_NO <100000;SPOol OFFexit;
解决方法 每当客户端程序(例如sqlplus)连接到数据库时,它就会告诉数据库它正在使用哪些字符集.某些环境可能具有非常有限的字符集并且使用类似US7ASCII的东西,因此它们不会得到任何可能使它们烦恼的东西.

正如您在以下示例中所看到的,查询输出的内容取决于客户端的NLS_LANG设置.

C:\>set NLS_LANG=.US7ASCIIC:\>sqlplus ???/???@xesql*Plus: Release 10.2.0.1.0 - Production on Wed Nov 3 09:31:32 2010> select chr(193) from dual;C-?> quitC:\>set NLS_LANG=.AL32UTF8C:\>sqlplus ???/???@xesql*Plus: Release 10.2.0.1.0 - Production on Wed Nov 3 09:31:49 2010> select chr(193) from dual;C-┴

如果您的客户端是windows,请尝试以上 *** 作.如果它是unix(ish)平台,请尝试

export NLS_LANG=.AL32UTF8
总结

以上是内存溢出为你收集整理的如何将Oracle数据库中的UTF-8格式数据转换为文本文件全部内容,希望文章能够帮你解决如何将Oracle数据库中的UTF-8格式数据转换为文本文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1166945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存