IF-Exists不在Oracle中进行查询

时间:2017-04-07 05:13:31

标签: sql oracle

查询错误,因为它给了我一个错误:

DECLARE
  con integer;
BEGIN
  SELECT COUNT(*)as result
  INTO con FROM USER_TABLES where table_name ='TXN_TEMP_TABLE';

  IF( con = 1 )
  THEN
  BEGIN
  DROP TABLE TXN_TEMP_TABLE1;
  END;
  END IF;
END;

我正在尝试删除一个表,如果它已经存在但是这个查询会抛出错误。

1 个答案:

答案 0 :(得分:0)

您可以使用EXECUTE IMMEDIATE执行DDL:

DECLARE
    con integer;
BEGIN
    SELECT COUNT(*)
    INTO con 
    FROM USER_TABLES 
    where table_name ='TXN_TEMP_TABLE';

    IF con = 1 THEN
        execute immediate 'DROP TABLE TXN_TEMP_TABLE';
    END IF;
END;