我在linux下要把oracle資料庫的資料導到txt檔案中,采用sqlplus的spool方法,可是有個clob欄位太大,每一條資料無法在同一行輸出,設定set linesize 小于80的有效,但是大于80就無效了,請問這是為什么,求賜教,謝謝,在線等
set echo off;
set heading off ;
set verify off ;
set feedback off;
set termout on;
set linesize 10;
set long 1000000;
set newpage none;
set pagesize 0;
set trimspool on;
set trims on;

uj5u.com熱心網友回復:
求各位賜教啊,這個問題搞了兩天了,沒找到原因
uj5u.com熱心網友回復:
自己頂
uj5u.com熱心網友回復:
col col_name format a2000uj5u.com熱心網友回復:
謝謝樓上的回復,可是我加了這個陳述句還是不行uj5u.com熱心網友回復:
最大只能每行80個字符嗎
uj5u.com熱心網友回復:
貼一下你的程序。uj5u.com熱心網友回復:
回復樓上:SET NEWPAGE NONE;
set echo off;
SET HEADING OFF;
SET SPACE 0;
SET PAGESIZE 0;
SET TRIMOUT ON;
SET TRIMSPOOL ON;
SET LINESIZE 32767;
SET LONG 5000;
COL PHOTO FORMAT A2000;
set trims on;
set feed off;
spool $file_idcheck;
select id||'${SPLIT}'||CARDNO||'${SPLIT}'||CARDREST||'${SPLIT}'||
NAME||'${SPLIT}'||NAMEREST||'${SPLIT}'||PHOTO||'${SPLIT}'||TO_CHAR(SYSDATE,'YYYYMMDD')||'${SPLIT}' from T_IDCHECK_RESULT t ;
spool off;
quit;
我查詢的這些欄位,其中有一個PHOTO是CLOB型別,如果只select這一個欄位,則可以一行顯示幾千個字符,或者select id,photo,name,這樣寫,也可以一行顯示完整,但是如果拼接||間隔符的話,則無法一行顯示,photo這個欄位每行只能顯示80個字符
uj5u.com熱心網友回復:
#! /bin/bashtrap "" 0 1 2 3
today=`date +%Y%m%d`
SPLIT=`echo -e "\x03\x04"`
file_idcheck=T_IDCHECK_RESULT.txt
touch "$file_idcheck"
idcheck=`sqlplus -s USER/PASSWORD <<END
SET NEWPAGE NONE;
set echo off;
SET HEADING OFF;
SET SPACE 0;
SET PAGESIZE 0;
SET TRIMOUT ON;
SET TRIMSPOOL ON;
SET LONG 32766;
SET LINESIZE 32766;
SET wrap on;
COL PHOTO FORMAT A32767;
set trims on;
set feed off;
spool $file_idcheck;
select '${SPLIT}'||PHOTO from T_IDCHECK_RESULT t ;
spool off;
quit;
END`
iconv -f gbk -t utf-8 $file_idcheck
#---- to ftp my txts-----
ftp -i -n<<!
open IP 21
user USER@PASSWORD
cd idcheck_file
mkdir $today
cd $today
lcd ./$today
put $file_idcheck
bye
!
rm $file_idcheck
exit 0
uj5u.com熱心網友回復:
又解決嗎,遇到同樣的問題轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/102165.html
標籤:開發
上一篇:求各路大神求解,很困惑。。。
下一篇:好難的一句sql,求大神幫忙
