sqlplus操作--文件的输入与输出
生活随笔
收集整理的這篇文章主要介紹了
sqlplus操作--文件的输入与输出
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
再sqlplus中執(zhí)行腳本sql語句,并使結(jié)果輸出到ouput文件
--關(guān)閉console臺(tái)輸出,可以節(jié)省時(shí)間
set term off;
--再輸出的文件中顯示執(zhí)行的sql語句
set echo on;
--顯示執(zhí)行每條語句所用的時(shí)間
set timing on;
--每行顯示的100個(gè)字符
set linesize 100;
--查詢結(jié)果每一百條分一頁
set pagesize 100;
--spool 設(shè)置輸出文件
spool d:\tempfile\oracle\output.txt;
--執(zhí)行input.txt里面的sql語句
@ d:\tempfile\oracle\input.txt;
--把內(nèi)容從緩存里面輸出到文件吧
spool off;執(zhí)行此操作遇到問題
在output.txt中出現(xiàn)亂碼1.當(dāng)把output.txt文件設(shè)置為gbk字符編碼時(shí),發(fā)現(xiàn)input.txt里面的中文亂碼2.當(dāng)把output.txt文件設(shè)置為utf-8字符編碼時(shí),describe emp;輸出語句里面的中文亂碼
最后把input.txt(原本是utf-8)文件字符編碼設(shè)置為gbk;這里主要出現(xiàn)的問題是sqlplus客戶端字符編碼是gbk,輸出的內(nèi)容為gbk編碼,如果把output.txt設(shè)置為utf-8則sqlplus客戶端穿過來的內(nèi)容亂碼;
因?yàn)榉?wù)端和客戶端都是gbk編碼,所以input.txt的所有內(nèi)容并不會(huì)出現(xiàn)字符集轉(zhuǎn)換,所以這里選擇把input.txt字符集換成和sqlplus客戶端字符集相同,并把output.txt設(shè)置為與sqlplus客戶端相同,就解決了亂碼。原因可見oracle字符編碼的解決一、查詢服務(wù)端字符集select userenv('language') from dual; USERENV('LANGUAGE')----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK二、 客戶端NLS_LANG參數(shù)(即sqlplus的參數(shù))該參數(shù)用于向Oracle指示客戶端操作系統(tǒng)(sqlplus客戶端)的字符集。select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; PARAMETER VALUE------------------------------ ------------------------------
NLS_CHARACTERSET ZHS16GBK設(shè)置客戶端NLS_LANG C:\Users\85243>set nls_lang=Simplified Chinese_China.ZHS16GBKC:\Users\85243>set nls_lang=Simplified Chinese_China.AL32UTF8三、客戶端操作系統(tǒng)字符集C:\Users\85243>chcp活動(dòng)代碼頁: 936936代表的是gbk編碼 65001代表的是utf-8
?
轉(zhuǎn)載于:https://www.cnblogs.com/ylw666/p/6852720.html
總結(jié)
以上是生活随笔為你收集整理的sqlplus操作--文件的输入与输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS border-image属性
- 下一篇: 以POST方式下载文件