if exists(select table_name) from all_tables where table_name="BANNER")
DROP TABLE "BANNER"
CREATE TABLE "A"."BANNER"(........)
报错 
ORA-00900:无效SQL语句
请问这是什么问题啊

解决方案 »

  1.   

    这是oracle语法吗?
    pl/sql里if ... then ... endif;
    sql里case when ... then ... end case;
      

  2.   

    declare
    v_cnt number(20);
    begin
     select count(*) into v_cnt from all_tables where table_name='BANNER';
     if v_cnt>0 then
        execute immediate 'drop table BANNER';
     end if;
        execute immediate 'create table BANNER as select 1 a from dual';
    end;
      

  3.   

    先查询下这个表是否存在,存在就用动态sql删除,因为过程里不能直接执行ddl。
    然后在用动态sql创建表。
      

  4.   


    又是mssql转oracle 的 呵呵
    declare
    num number;
    begin
    select count(1) into num from dba_tables where table_name='BANNER';
    if num>0 then
    execute immediate 'drop table BANNER';
    end if;
    execute immediate 'create table BANNER(....)';
    end;
      

  5.   


    我用这个语句 还是报错啊
    ORA-06550;第25行,第3列:
    PLS-00103:出现符号"DROP"在需要下列之一时:
    begin case declare end
     exception exit for oto if loop mod null pragma raise return
     select update while with <an identifier>
     <a double-quoted delimited-identifier> <a bind variable> <<
     close current delete fetch lock insert open rollback 
     savepoint set sql execute commit forall merge pipe[Err] declare
    num number;
    begin
    select count(1) into num from dba_tables where
    table_name='BANNER';
    if num>0 then
    execute immediate 'drop table BANNER';
    end if;
    execute immediate ' CREATE TABLE "A"."BANNER"(........)' ;
      

  6.   


    execute immediate 'drop table BANNER';BANNER 此表的所属用户
    execute immediate 'drop table 创建此表的所属用户.BANNER';
    begin case declare end
     exception exit for oto if loop mod null pragma raise return
     select update while with <an identifier>
     <a double-quoted delimited-identifier> <a bind variable> <<
     close current delete fetch lock insert open rollback  
     savepoint set sql execute commit forall merge pipe你全部的代码贴出来