ORACLE 判断表是否存在,存在则删除方法

Oracl 数据库也没有个半段表是否存在,存在则删除的语句,经过研究和改写他人的方法先隆重推出绝对能用性的Oracle判断表是否存在,存在则删除方法,在Oracle10g上试验通过。

 

方法

 

CREATE OR REPLACE FUNCTION PROC_NAME(T_NAME IN VARCHAR2) RETURN NUMBER IS
  V_CNT number;
  V_SQL  VARCHAR2(100);
BEGIN
  V_CNT := 0;

  SELECT COUNT(*) INTO V_CNT FROM USER_TABLES WHERE TABLE_NAME = T_NAME;

  IF V_CNT = 0 THEN
    RETURN 0;
  else
    V_SQL := 'DROP TABLE ' || T_NAME;
    execute immediate V_SQL;
    DBMS_OUTPUT.PUT_LINE(V_SQL ||' 执行成功');
    RETURN 1;
  END IF;
EXCEPTION
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(SQLCODE || SQLERRM);
    DBMS_OUTPUT.PUT_LINE(V_SQL);
     RETURN 3;
end;

调用

BEGIN
  IF PROC_NAME(TABLE_NAME) = 0 THEN
    DBMS_OUTPUT.PUT_LINE('OK');
  END IF;
END;
/

你可能感兴趣的:(oracle,oracle10g,sql,table,function,数据库)