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

Periksa tabel ada atau tidak sebelum membuatnya di Oracle

Seperti yang juga dikomentari Rene, sangat tidak biasa untuk memeriksa terlebih dahulu dan kemudian membuat tabel. Jika Anda ingin menjalankan kode sesuai dengan metode Anda, ini akan menjadi:

declare
nCount NUMBER;
v_sql LONG;

begin
SELECT count(*) into nCount FROM dba_tables where table_name = 'EMPLOYEE';
IF(nCount <= 0)
THEN
v_sql:='
create table EMPLOYEE
(
ID NUMBER(3),
NAME VARCHAR2(30) NOT NULL
)';
execute immediate v_sql;

END IF;
end;

Tapi saya lebih suka menangkap Pengecualian, menghemat beberapa baris kode yang tidak perlu:

declare
v_sql LONG;
begin

v_sql:='create table EMPLOYEE
  (
  ID NUMBER(3),
  NAME VARCHAR2(30) NOT NULL
  )';
execute immediate v_sql;

EXCEPTION
    WHEN OTHERS THEN
      IF SQLCODE = -955 THEN
        NULL; -- suppresses ORA-00955 exception
      ELSE
         RAISE;
      END IF;
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. ORA-02287:nomor urut tidak diperbolehkan di sini

  2. Penentuan dan pengaturan Edisi R12.2

  3. bagaimana cara mengubah batasan pemeriksaan yang ada?

  4. Fungsi NLS_CHARSET_ID() di Oracle

  5. Mengapa saya mendapatkan PLS-00302:komponen harus dideklarasikan ketika ada?