create or replace procedure aab
as
begin
   alter table a modify id varchar2(22);
   alter table a drop id;//(?可以吗?)
   if(//怎样捕获异常)
       rollback;
   else
       commit;
end aab;execute aab;//可以直接执行吗?急用呀,问题解决就结贴!

解决方案 »

  1.   

    create or replace procedure aab
    as
    begin
       execute immediate 'alter table a modify id varchar2(22)';
    end aab;create or replace procedure aab
    as
    begin
     execute immediate 'alter table a modify id varchar2(22)';
     execute immediate 'alter table a drop column id';//(?可以吗?) //怎样捕获异常
     --->
     (DDL 语句不需要commit/rollback,正确自动提交,错误自动回滚)
    end aab;execute aab;//可以直接执行吗?--->可以
      

  2.   

    create or replace procedure aab
    as
    begin
       execute immediate 'alter table a modify id varchar2(22)';
       execute immediate 'alter table a drop column id';
    end aab;
    exec aab;
      

  3.   

    这样自执行我不可以使用SQL语句是吧!
    看来我不能这样子作了,不过还是要谢谢两位!
      

  4.   

    V_Sql varchar2(255) := '1';
    DBMS_OUTPUT.PUT_LINE('1' || V_Sql);什么意思?
      

  5.   

    输出 '1' || V_Sql的结果
      

  6.   

    现在我有表A
    其某一字段ID为NOT NULL
    我应怎样写SQL语句使其可以为NULL
      

  7.   

    先要set serveroutput on
    然后才回显示
      

  8.   

    DBMS_OUTPUT.PUT_LINE将结果输出到哪里了?
      

  9.   

    set serveroutput on;
    create or replace procedure TestProcedure is
    begin
      DBMS_OUTPUT.PUT_LINE('hello');
    end TestProcedure;真的不好意思,我怎么愣是没看到!太愚了!
      

  10.   

    set serveroutput on;
    create or replace procedure TestProcedure is
    begin
      DBMS_OUTPUT.PUT_LINE('Hello ');
    end TestProcedure;execute TestProcedure;系统提示不可以有execute ?????
      

  11.   

    begin
    TestProcedure;
    end;
    /