简单的PLSQL来检查表是否存在不起作用

时间:2014-05-20 10:42:45

标签: sql oracle plsql

有人可以查看下面的代码并告诉我为什么在运行它时会得到无效的SQL语句?!这究竟是什么无效的?!

IF EXISTS(SELECT 1 FROM user_tables WHERE table_name = 'tbl_BSUK_PriceIssue') THEN
    DROP TABLE tbl_BSUK_PriceIssue;

    IF EXISTS(SELECT 1 FROM user_tables WHERE table_name = 'TBL_BSUK_PRICEISSUE') THEN
        SELECT '<<< FAILED DROPPING TABLE dbo.tbl_BSUK_PriceIssue >>>' FROM dual;
    ELSE
        SELECT '<<< DROPPED TABLE dbo.tbl_BSUK_PriceIssue >>>' FROM dual;
    END IF;
END IF;

1 个答案:

答案 0 :(得分:1)

我无法看到您的代码存在问题,但以下内容适用于我

set serveroutput on;
declare
  l_res number;
begin
  select count('x') 
  into l_res
  from user_tables 
  WHERE table_name = 'JFTEST'; --'tbl_BSUK_PriceIssue';

  if l_res=0 then
    dbms_output.put_line('Table not found');
  else
    dbms_output.put_line('Table Exists');
  end if;
end;