oracle spool file without whitespace

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
jataz2
PHP Super Member
PHP Super Member
Posts: 249
Joined: 22/02/2011 11:48 am

oracle spool file without whitespace

Post by jataz2 »

So this is what i came up with: it will dump oracle data without any spaces etc between columns, while preserving the spaces within data. I thought i would share it with you.

Code: Select all

#!/usr/bin/bash
#the file where sql output will go
OUT=report.txt
>$OUT
DESC=desc.txt
>$DESC

TABLE_NAME=$1


###GET DESCRIBE####

s=""
#######################
sqlplus -s "***/***@***" << END_SQL > /dev/null

set pages 0
set feedback off
set heading off
set trimspool off
set termout off
set verify off
set wrap off

SPOOL $DESC

desc $TABLE_NAME;

SPOOL OFF

END_SQL
#######################

for i in `cat $DESC|awk -F" " '{print $1}'|grep -v -i name|grep -v -`
do
s=$s"trim($i)||'|'||"
done

s=`echo $s|sed "s/||'|'||$//g"`
echo $s
#######################

Code: Select all

#sqlplus - silent mode
#redirect /dev/null so that output is not shown on terminal
sqlplus -s "***/***@***" << END_SQL > /dev/null

set pages 0
set feedback off
set heading off
set trimspool off
set termout off
set verify off
set colsep ""
set tab off
set lines 1500

SPOOL $OUT

select $s from $TABLE_NAME;
SPOOL OFF

END_SQL
#######################

Code: Select all

cat $OUT|sed "s/|//g"|sed "s/ *$//g" >$OUT.new
mv $OUT.new $OUT

echo Finished writing report $OUT
share

อ่านต่อได้ที่นี่ครับ https://stackoverflow.com/questions/172 ... en-columns

  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 3 guests