বাহ্যিক টেবিলগুলি ডাটাবেসের বাইরে সঞ্চিত ফ্ল্যাট ফাইলগুলি থেকে ডেটা গ্রহণ করে এবং Oracle® কে সেই ফাইলগুলিতে ডেটা অনুসন্ধান করার অনুমতি দেয়৷
পরিচয়
ওরাকল SQL*লোডার দ্বারা সমর্থিত যেকোন ফাইল ফরম্যাট পার্স করতে পারে। আপনি বাহ্যিক টেবিলে ডেটা ম্যানিপুলেশন ভাষা (DML) ব্যবহার করতে পারবেন না, তবে আপনি ক্যোয়ারী, যোগদান এবং সাজানোর ক্রিয়াকলাপের জন্য DML ব্যবহার করতে পারেন। আপনি বহিরাগত টেবিলের বিপরীতে দৃশ্য এবং প্রতিশব্দ তৈরি করতে পারেন।
বাহ্যিক টেবিল বৈশিষ্ট্যের সুবিধা নিতে, আপনার ORACLE_LOADERaccess ড্রাইভার ব্যবহার করা উচিত এবং নিশ্চিত করা উচিত যে ডেটা ফাইলগুলি পাঠ্য বিন্যাসে রয়েছে৷ আপনার স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ (SQL) বুঝতে হবে যাতে আপনি একটি বাহ্যিক টেবিল তৈরি করতে পারেন এবং এর বিরুদ্ধে প্রশ্নগুলি সম্পাদন করতে পারেন৷
একটি 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;
একটি স্থানীয় টেবিল তৈরি করুন
যেহেতু আপনি বাহ্যিক টেবিলে ডিএমএল করতে পারবেন না, তাই বাহ্যিক টেবিলের উপর ভিত্তি করে একটি স্থানীয় টেবিল তৈরি করতে নিম্নলিখিত কোডটি ব্যবহার করুন:
--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 );
বাহ্যিক টেবিল থেকে নিয়মিত টেবিলে ডেটা লোড করুন
নিচের ছবিটি আপনাকে দেখায় কিভাবে একটি বাহ্যিক টেবিল থেকে অ্যারেগুলার টেবিলে ডেটা লোড করতে হয়:
ছবির উৎস :https://dba.fyicenter.com/faq/oracle/Load-Data-from-External-Tables.html
উপসংহার
বাহ্যিক টেবিল আপনাকে বহিরাগত উত্সগুলিতে ডেটা অ্যাক্সেস করতে সক্ষম করে যেন এটি ডাটাবেসের একটি টেবিলে ছিল। যদি ব্যবহারকারীরা একটি স্প্রেডশীট বা CSV ফরম্যাটে ডেটা সরবরাহ করে এবং আপনাকে এক্সেল শীটের উপর ভিত্তি করে ডেটাবেস টেবিল আপডেট করতে হয়, তাহলে একটি এক্সটার্নাল টেবিল কাজে আসবে৷
কোনো মন্তব্য করতে বা প্রশ্ন জিজ্ঞাসা করতে প্রতিক্রিয়া ট্যাব ব্যবহার করুন। কথোপকথন শুরু করতে আপনি এখন চ্যাটও করতে পারেন।
ডেটাবেস সম্পর্কে আরও জানুন।