หน้า 1 จากทั้งหมด 1

oracle export result ออกไปในรูปแบบ .txt

โพสต์แล้ว: 11/11/2016 2:08 pm
โดย jataz2
เราสามารถ export data จาก query ออกไปเป็น .txt ไฟล์ได้ หลายวิธี

1. ใช้ toad run query แล้ว export result ออกไปได้ ข้อดีคือง่าย ข้อเสียคือ ถ้าจำนวน แถวที่ต้อง export ออกไปมามาก เป็นล้านแถว จะกิน memory

2. ใช้ sql plus คำสั่ง spool เพื่อพ่น result ออกไปเป็นไฟล์ได้ ข้อดีคือ ไม่กิน memory และเร็ว

สร้าง queryExportCustomer.sql ที่มีหน้าตาดังข้อความด้านล่าง แล้ว save ไว้ที่ D:\sql\queryExportCustomer.sql

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

set newpage none
set colsep |    --[ ต่อแตะละ column ด้วยเครื่องหมาย |]
set feedback off --[ON เเปะจำนวน row ที่มีทั้งหมดที่ พ่นไฟล์ออกมา จะแปะไว้ต่อท้ายสุด ล่างสุดในไฟล์ .txt ]
set echo off
set pages 0
set lines 32767   
SET TRIMSPOOL ON
set termout OFF   --[ON คือแสดงผลลัพท์ออกหน้าจอ dos ด้วย ข้อความที่จะพ่นลง .txt render ข้อความให้ดูบนหน้า dos ด้วย , OFF คือปิด ไม่ต้องต้องแสดงออก dos พ่นลง .txt ไฟล์ตรง ข้อดีคือจะไวมากๆ เพราะไม่ต้อง render ข้อความออกหน้าจอ dos]
spool 'D:\data\Customer.txt'
select card_id,fullname_th from tb_customer;
spool off;
exit

วิธีใช้ก็ คือ เปิด dos command แล้วพิมพ์
1. c:\>D:\oracle\product\10.2.0\client_1\BIN\sqlplusw.exe dbUserName/[email protected]:1530/CUSTOMERDB
จากนั้นกด enter จะเข้าสู่ sqlplus dos prompt

2. sqlplus :\> set NLS_LANG=AMERICAN_AMERICA.TH8TISASCII
set language ให้รองรับภาษาไทย มิเช่นนั้น ไฟล์ที่พ่น ออกไปสู่ .txt ถ้ามีภาษาไทย จะแสดงเพี้ยนเป็นภาษาต่างดาว

3. ไปสร้าง D:\data\Customer.txt รอไว้ เป็น .txt file เปล่าๆ

4. sqlplus :\> @"D:\sql\queryExportCustomer.sql"
พิมพ์ แล้วกด enter มันจะสั่งให้รัน sql ตามพาธที่ระบุ ซึ่งก็คือ คำสั่งการ พ่น result ที่ได้จากการ query ไปที่ .txt ไฟล์ตามพาธที่ระบุไว้

Re: oracle export result ออกไปในรูปแบบ .txt

โพสต์แล้ว: 25/01/2017 9:45 am
โดย Photee
ถ้าในไฟล์ SQL ต้องการให้มีตัวแปรมารับค่า เพื่อนำไปเป็นเงื่อนไขในการ Query ต้องทำยังไงค่ะ รบกวนท่านผู้รู้ด้วยค่ะ

Re: oracle export result ออกไปในรูปแบบ .txt

โพสต์แล้ว: 25/01/2017 10:54 am
โดย Photee
ถ้าใน SQL ต้องการให้มีตัวแปรรับค่า แล้วนำค่านั้นไปใช้เป็นเงื่อนไขในการ Query ต้องเขียนยังไงคะ รบกวนด้วยค่ะ