Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Membuat tabel database dalam prosedur PL/SQL

Kedua prosedur harus menggunakan SQL dinamis:

  • print_info karena dimasukkan ke dalam tabel yang - pada waktu kompilasi - belum ada
  • create_table karena menjalankan DDL dan - untuk melakukannya - Anda perlu menggunakan SQL dinamis

Oleh karena itu:

SQL> CREATE OR REPLACE PROCEDURE PRINT_INFO
  2  IS
  3  BEGIN
  4    execute immediate q'[INSERT INTO TABLE_T (TABLE_ID, MESSAGE) VALUES (1, 'Hello World!')]';
  5  END PRINT_INFO;
  6  /

Procedure created.

SQL> CREATE OR REPLACE PROCEDURE CREATE_TABLE
  2  IS
  3  BEGIN
  4    execute immediate 'CREATE TABLE TABLE_T(' ||
  5      'TABLE_ID NUMBER NOT NULL, ' ||
  6      ' MESSAGE VARCHAR2(25), '    ||
  7      ' PRIMARY KEY(TABLE_ID) '    ||
  8      ')';
  9
 10    PRINT_INFO;
 11  END CREATE_TABLE;
 12  /

Procedure created.

SQL> EXEC CREATE_TABLE;

PL/SQL procedure successfully completed.

SQL> SELECT * FROM table_t;

  TABLE_ID MESSAGE
---------- -------------------------
         1 Hello World!

SQL>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menghubungkan Oracle ke SQL Server melalui Koneksi Aman

  2. Pemicu Oracle - masalah dengan tabel bermutasi

  3. Apa yang setara dengan tabel Oracle Dual di MS SqlServer?

  4. Bagaimana cara mengisi tabel kalender di Oracle?

  5. Tidak dapat menghapus dalam database karena kendala