Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

ใช้ตารางภายนอกของ Oracle

ตารางภายนอกรับข้อมูลจากไฟล์แฟล็ตที่จัดเก็บไว้ภายนอกฐานข้อมูล และอนุญาตให้ 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:

ใช้ตารางภายนอกของ Oracle

ที่มาของภาพ :https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html

บทสรุป

ตารางภายนอกช่วยให้คุณสามารถเข้าถึงข้อมูลในแหล่งข้อมูลภายนอกได้เหมือนกับว่าอยู่ในตารางในฐานข้อมูล หากผู้ใช้ระบุข้อมูลในสเปรดชีตหรือรูปแบบ CSV และคุณจำเป็นต้องอัปเดตตารางฐานข้อมูลโดยอิงจากแผ่นงาน Excel ตารางเสริมจะสะดวกยิ่งขึ้น

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังแชทตอนนี้เพื่อเริ่มการสนทนาได้

เรียนรู้เพิ่มเติมเกี่ยวกับฐานข้อมูล