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

วิธีใช้ Oracle External Tables สำหรับการเข้าถึงข้อมูลอย่างมีประสิทธิภาพ

External Tables รับข้อมูลจาก Flat Files ที่จัดเก็บนอกฐานข้อมูล และอนุญาตให้ Oracle® สืบค้นข้อมูลในไฟล์เหล่านั้น

บทนำ

Oracle สามารถแยกวิเคราะห์รูปแบบไฟล์ใดๆ ที่ SQL*Loader รองรับ คุณไม่สามารถใช้ Data Manipulation Language (DML) บน External Tables ได้ แต่คุณสามารถใช้ DML สำหรับการ Query, Join และ Sort ได้ คุณยังสามารถสร้าง Views และ Synonyms ต่อต้าน External Tables ได้

เพื่อใช้ประโยชน์จากคุณลักษณะ External Table คุณควรใช้ ORACLE_LOADER Access Driver และตรวจสอบให้แน่ใจว่าไฟล์ข้อมูลอยู่ในรูปแบบ Text คุณควรเข้าใจ Structured Query Language (SQL) เพื่อที่จะสร้าง External Table และสืบค้นข้อมูลต่อต้านมัน

สร้าง External Table ในฐานข้อมูล Oracle

เพื่อสร้าง External Tables โดยใช้ Oracle Loader ให้ทำตามขั้นตอนต่อไปนี้:

สร้าง Directory

ใช้โค้ดต่อไปนี้เพื่อสร้าง Directory ที่ชี้ไปยังตำแหน่งของไฟล์ Comma-Separated Value (CSV) หรือ Text Files ที่ผู้ใช้ให้มา

create directory vk_dir as '/opt/oracle/app/admin/je1prd/mods/151214_CHG0004529'; 

สร้าง External Table

ใช้ SQL ต่อไปนี้เพื่อสร้าง External Table:

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; 

สร้าง Local Table

เนื่องจากคุณไม่สามารถทำ DML บน External Tables ได้ ให้ใช้โค้ดต่อไปนี้เพื่อสร้าง Local Table โดยอิงจาก External Table:

--create create table kumarv5.VK_4529_int ( IBMCU NCHAR(12), IBLITM NCHAR(25), IBANPL NUMBER ) tablespace proddtat; 

คัดลอกข้อมูลจาก External Table ไป Local Table

ใช้โค้ดต่อไปนี้เพื่อคัดลอกข้อมูลจาก External ไป Local Table:

--insert Insert into kumarv5.VK_4529_int select * from kumarv5.VK_4529_ext; commit; select count(*) from kumarv5.VK_4529_int; 

อัปเดตตาราง Production หลัก

หลังจากที่คุณสร้าง Local Table โดยอิงจาก External Table แล้ว คุณสามารถใช้โค้ดต่อไปนี้เพื่ออัปเดตตาราง Production หลักจาก Local Table:

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 ); 

โหลดข้อมูลจาก External Tables ไป Regular Tables

ภาพต่อไปนี้แสดงวิธีโหลดข้อมูลจาก External Table ไป Regular Table:

วิธีใช้ Oracle External Tables สำหรับการเข้าถึงข้อมูลอย่างมีประสิทธิภาพ

แหล่งที่มารูปภาพ: https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html

สรุป

External Tables ช่วยให้คุณเข้าถึงข้อมูลในแหล่งภายนอกได้彷彿สensed มันอยู่ในตารางในฐานข้อมูล หากผู้ใช้ให้ข้อมูลในรูปแบบ Spreadsheet หรือ CSV และคุณต้องการอัปเดตตารางฐานข้อมูลโดยอิงจาก Excel Sheet External Table จะช่วยได้มาก

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

เรียนรู้เพิ่มเติมเกี่ยวกับ Databases