oracle spool file without whitespace

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

Moderator: mindphp

ภาพประจำตัวสมาชิก
jataz2
PHP Super Member
PHP Super Member
โพสต์: 275
ลงทะเบียนเมื่อ: 22/02/2011 11:48 am

oracle spool file without whitespace

โพสต์ที่ยังไม่ได้อ่าน โดย 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.

โค้ด: เลือกทั้งหมด

#!/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
#######################

โค้ด: เลือกทั้งหมด

#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
#######################

โค้ด: เลือกทั้งหมด

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
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 29