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