BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE '   || 'test'   || 'AS SELECT * FROM KAOHE1 WHERE 1!=1';
end;
单独执行就不会报错!说是选项缺失或无效
CREATE TABLE  test AS SELECT * FROM KAOHE1 WHERE 1!=1

解决方案 »

  1.   


    SQL> declare
      2  sqlstr varchar2(1000);
      3  begin
      4  sqlstr:='CREATE TABLE '   || 'test'   || 'AS SELECT * FROM KAOHE1 WHERE 1!=1';
      5  dbms_output.put_line(sqlstr);
      6  end;
      7  /
    CREATE TABLE testAS SELECT * FROM KAOHE1 WHERE 1!=1
    --这个是打印你写的语句 看到没有 as 前少了空格
    PL/SQL 过程已成功完成。
      

  2.   

    BEGIN
    EXECUTE IMMEDIATE 'CREATE TABLE  '   || '  test  '   || 'AS SELECT * FROM KAOHE1 WHERE 1!=1';
    end;