Oracle10g可以使用DBMS_UTILITY.exec_ddl_statement方法,11g这个方法没有了。请问改成啥了?不是 execute immediate 'SQL语句';这对于create table是不行的。

解决方案 »

  1.   

    execute immediate可以执行DDL语句,楼主试试
    BEGIN
       EXECUTE IMMEDIATE 'drop table t';
    END;
      

  2.   


    [TEST@myorcl] SQL>desc t3;
    ERROR:
    ORA-04043: 对象 t3 不存在
    [TEST@myorcl] SQL>desc t3;
    ERROR:
    ORA-04043: 对象 t3 不存在
    [TEST@myorcl] SQL>begin
      2  execute immediate 'create table t3(id number,name varchar2(10))';
      3  end;
      4  /PL/SQL 过程已成功完成。[TEST@myorcl] SQL>desc t3;
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ----------------------------
     ID                                                 NUMBER
     NAME                                               VARCHAR2(10)
      

  3.   

    execute immediate '<sql>'
      

  4.   

    execute immediate 正解,在过程中可调用
      

  5.   

    execute immediate可以执行create table啊,试过了没问题。
      

  6.   

    execute immediate 可以执行ddl语句