अपने प्रश्न का उत्तर देने के लिए, आपको तुरंत निष्पादित करें
और गतिशील रूप से अपना स्टेटमेंट बनाएं।
create or replace procedure hire_employee (
emp_id IN INTEGER
, name IN VARCHAR2
, country IN VARCHAR2 ) is
-- maximum length of an object name in Oracle is 30
l_table_name varchar2(30) := 'employees_' || country;
begin
execute immediate 'insert into ' || l_table_name
|| ' values (:1, :2, 1000)'
using emp_id, name;
end hire_employee;
हालाँकि, यह डेटा संग्रहीत करने का एक व्यापक रूप से अधिक जटिल तरीका है। अगर आप सभी . को चुनना चाहते हैं डेटा आपको बड़ी संख्या में तालिकाओं को मिलाना है।
डेटाबेस को ठीक से सामान्य करना और देश को कर्मचारियों
. में जोड़ना कहीं बेहतर होगा टेबल।
कुछ इस तरह:
create table employees (
emp_id number(16)
, country varchar2(3) -- ISO codes
, name varchar2(4000) -- maximum who knows what name people might have
, < other_columns >
, constraint pk_employees primary key ( emp_id )
);
आपकी प्रक्रिया तब एक बहुत ही सरल सम्मिलन कथन बन जाती है:
create or replace procedure hire_employee (
emp_id in integer
, name in varchar2
, country in varchar2 ) is
insert into employees
values ( emp_id, country, name, 1000 );
end hire_employee;