ORACLE 判断表是否存在,存在则删除方法
2010-01-29 12:26
351 查看
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;
/
方法
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中判断表或视图是否存在,如果不存在再创建的方法
- 用Sql添加删除字段,判断字段是否存在的方法
- Oracle判断表、列、主键是否存在的方法
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- Oracle删除表之前判断表是否存在
- ORACLE 判断序列是否存在,如果存在就删除
- Android添加(创建)、删除及判断是否存在桌面快捷方式的方法
- ORACLE中判断表是否存在再删除表避免报错与MySql和SqlServer的不同
- 用Sql添加删除字段,判断字段是否存在的方法
- SQL删除字段及判断字段是否存在的方法
- Oracle删除表、字段之前判断表、字段是否存在
- oracle中判断某列是否为数字,删除重复数据的方法
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- *用Sql添加删除字段,判断字段是否存在的方法
- Oracle之 在创建Table之前先判断是否存在,存在就删除
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- oracle创建表之前判断表是否存在,如果存在则删除已有表
- 在删除表前,oracle如何判断表是否存在,存在就删再创建,不存在直接创建!
- Oracle删除表前判断表名是否存在若存在则删除