ตารางภายนอกรับข้อมูลจากไฟล์แฟล็ตที่จัดเก็บไว้ภายนอกฐานข้อมูล และอนุญาตให้ Oracle® สืบค้นข้อมูลในไฟล์เหล่านั้น
แนะนำตัว
Oracle สามารถแยกวิเคราะห์รูปแบบไฟล์ใดๆ ที่ SQL*Loader รองรับ คุณไม่สามารถใช้ภาษาการจัดการข้อมูล (DML) ในตารางภายนอกได้ แต่คุณสามารถใช้ DML สำหรับการดำเนินการค้นหา เข้าร่วม และจัดเรียงได้ คุณยังสามารถสร้างมุมมองและคำพ้องความหมายกับตารางภายนอกได้
ในการใช้ประโยชน์จากคุณลักษณะตารางภายนอก คุณควรใช้โปรแกรมควบคุมการเข้าถึง ORACLE_LOADER และตรวจสอบให้แน่ใจว่าไฟล์ข้อมูลอยู่ในรูปแบบข้อความ นอกจากนี้ คุณควรเข้าใจ Structured Query Language (SQL) เพื่อให้คุณสามารถสร้างตารางภายนอกและดำเนินการค้นหากับมันได้
สร้างตารางภายนอกในฐานข้อมูล Oracle
ในการสร้างตารางภายนอกโดยใช้ตัวโหลด Oracle ให้ทำตามขั้นตอนต่อไปนี้:
สร้างไดเรกทอรี
ใช้รหัสต่อไปนี้เพื่อสร้างไดเร็กทอรีที่ชี้ไปยังตำแหน่งของค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) หรือไฟล์ข้อความที่ผู้ใช้ให้มา
create directory vk_dir as '/opt/oracle/app/admin/je1prd/mods/151214_CHG0004529';
สร้างตารางภายนอก
ใช้ SQL ต่อไปนี้เพื่อสร้างตารางภายนอก:
create table kumarv5.VK_4529_ext
(
IBMCU NCHAR(12),
IBLITM NCHAR(25),
IBANPL NUMBER
)
organization external
(
type oracle_loader
default directory vk_dir
access parameters
(
records delimited by newline
logfile vk_dir:'VK_4529_ext.log'
badfile vk_dir:'VK_4529_ext.bad'
discardfile vk_dir:'VK_4529_ext.dcf'
skip 1
fields
terminated by '~'
missing field values are null
reject rows with all null fields
(
IBMCU,
IBLITM,
IBANPL
)
)
location
(
'data14.csv'
)
)
reject limit unlimited;
สร้างตารางในเครื่อง
เนื่องจากคุณไม่สามารถดำเนินการ DML บนตารางภายนอกได้ ให้ใช้รหัสต่อไปนี้เพื่อสร้างตารางในเครื่องโดยยึดตามตารางภายนอก:
--create
create table kumarv5.VK_4529_int
(
IBMCU NCHAR(12),
IBLITM NCHAR(25),
IBANPL NUMBER
)
tablespace proddtat;
คัดลอกข้อมูลจากภายนอกไปยังตารางในเครื่อง
ใช้รหัสต่อไปนี้เพื่อคัดลอกข้อมูลจากภายนอกไปยังตารางในเครื่อง:
--insert
Insert into kumarv5.VK_4529_int select * from kumarv5.VK_4529_ext;
commit;
select count(*) from kumarv5.VK_4529_int;
อัปเดตตารางการผลิตหลัก
หลังจากที่คุณสร้างตารางในเครื่องตามตารางภายนอก คุณสามารถใช้รหัสต่อไปนี้เพื่ออัปเดตตารางการผลิตหลักจากตารางในเครื่อง:
update PRODDTA.F43090 a
set a.PCMCU=' 1AM'
WHERE (a. IBMCU, a. IBLITM, a. IBANPL) in
(select b. IBMCU, b. IBLITM, b. IBANPL from kumarv5.VK_4529_int b );
โหลดข้อมูลจากตารางภายนอกไปยังตารางปกติ
รูปภาพต่อไปนี้แสดงวิธีการโหลดข้อมูลจากตารางภายนอกไปยังตาราง aregular:
ที่มาของภาพ :https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html
บทสรุป
ตารางภายนอกช่วยให้คุณสามารถเข้าถึงข้อมูลในแหล่งข้อมูลภายนอกได้เหมือนกับว่าอยู่ในตารางในฐานข้อมูล หากผู้ใช้ระบุข้อมูลในสเปรดชีตหรือรูปแบบ CSV และคุณจำเป็นต้องอัปเดตตารางฐานข้อมูลโดยอิงจากแผ่นงาน Excel ตารางเสริมจะสะดวกยิ่งขึ้น
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังแชทตอนนี้เพื่อเริ่มการสนทนาได้
เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล