Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पीएल/एसक्यूएल में प्रोग्रामेटिक रूप से टेबल नाम कैसे सेट करें?

अपने प्रश्न का उत्तर देने के लिए, आपको तुरंत निष्पादित करें और गतिशील रूप से अपना स्टेटमेंट बनाएं।

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle पैकेज Crontab के अंदर काम नहीं कर रहा है

  2. Oracle में स्तंभ मानों की अदला-बदली

  3. Oracle में दिन के नाम पर राइट पैडिंग कैसे निकालें?

  4. POSTMAN बदले हुए मानों के साथ दिनांक फ़ील्ड लौटा रहा है

  5. होस्ट () कमांड का उपयोग करके ओरेकल प्रक्रिया