Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Kiểm tra bảng tồn tại hay không trước khi tạo nó trong Oracle

Như Rene cũng đã nhận xét, việc kiểm tra trước và sau đó tạo bảng là điều khá hiếm gặp, nếu bạn muốn có mã chạy theo phương pháp của mình, đây sẽ là:

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;

Nhưng tôi muốn tìm hiểu về Ngoại lệ, tiết kiệm cho bạn một số dòng mã không cần thiết:

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. Tạo phạm vi ngày từ hai cột ngày

  2. Sử dụng các biến liên kết với mệnh đề SELECT INTO động trong PL / SQL

  3. Mức lương tối đa thứ n trong Oracle

  4. Làm thế nào để sử dụng Array / Table Parameter cho Oracle (ODP.NET 10g) qua ADO.NET/C#?

  5. Chèn hàng loạt vào cơ sở dữ liệu Oracle:Cái nào tốt hơn:Vòng lặp FOR Cursor hay một lựa chọn đơn giản?