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 ไฟล์ตามพาธที่ระบุไว้