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

किसी दिए गए Oracle स्रोत तालिका से दस समान तालिकाएँ बनाने के लिए Oracle PL/SQL का उपयोग कैसे करें

आपको dynamic SQL की आवश्यकता है इसके लिए और Oracle के साथ हम execute immediate . का उपयोग कर सकते हैं ऐसा करने के लिए।

declare
  type array_t is table of varchar2(10);
  array array_t := array_t();
  lo_stmt varchar2(2000);
begin
  select distinct kind
    bulk collect into array
    from all_data;
  
  for i in 1..array.count loop
    --dbms_output.put_line(array(i));
    lo_stmt :=
    'create table '||array(i)||'_data '||
    'as '||
    'select kind,time_period,amount '||
    '  from all_data '||
    ' where kind = '''||array(i)||'''';
    --dbms_output.put_line(lo_stmt);
    execute immediate lo_stmt;
  end loop;
end;
/

डेमो यहां देखा जा सकता है

या एक ही कथन के साथ

declare
  type array_t is table of varchar2(4000);
  array array_t := array_t();
  lo_stmt varchar2(2000);
begin
  select distinct 'create table '||kind||'_data '||
    'as '||
    'select kind,time_period,amount '||
    'from all_data '||
    'where kind = '''||kind||''''
    bulk collect into array
    from all_data;
  
  for i in 1..array.count loop
    --dbms_output.put_line(array(i));
    execute immediate array(i);
  end loop;
end;
/

यहां भी काम करता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL में फ़ंक्शन बदलें

  2. मैं SQLPLUS का उपयोग करके CSV स्वरूपित फ़ाइल में कैसे स्पूल करूँ?

  3. ऑरैकल एसक्यूएल में विभिन्न प्रकार के रिकॉर्ड और कॉलम के साथ 2 प्रश्नों में कैसे शामिल हों?

  4. EXक्स्प () Oracle में फंक्शन

  5. Oracle 10g . में एग्रीगेट स्ट्रिंग कॉन्सटेनेशन