自己些的存储过程放哪了?我怎么样才能去修改它而不是重新写呢?用什么命令?

解决方案 »

  1.   

    如果用的是pl/sql developer 工具的话在procedure里edit就可以了
    如果在sqlplus里我不太清楚有什么命令可以直接修改存储过程
    --我是这样做的,利用spool
    SQL> SPOOL TEST.SQL--创建test.sql文件
    /*加上这个更好
    SQL> set echo off;--不显示执行语句
    SQL> set heading off;--不显示列标题
    */
    SQL> SELECT TEXT FROM ALL_SOURCE WHERE OWNER='SCOTT' AND TYPE='PROCEDURE' AND NAME='TEST';TEXT
    --------------------------------------------------------------------------------
    PROCEDURE TEST
    AS
    BEGIN
    DBMS_OUTPUT.PUT_LINE('HELLO WORLD');
    END;SQL> SPOOL END;
    SQL> ED TEST.SQL;
    /*这样就会有个记事本内容大概如下:
    SQL> SELECT TEXT FROM ALL_SOURCE WHERE OWNER='SCOTT' AND TYPE='PROCEDURE' AND NAME='TEST';TEXT                                                                            
    --------------------------------------------------------------------------------
    PROCEDURE TEST                                                                  
    AS                                                                              
    BEGIN                                                                           
    DBMS_OUTPUT.PUT_LINE('HELLO WORLD');                                            
    END;                                                                            SQL> SPOOL END;
    把前面后面的去掉,中间的部分就是过程的内容了,就可以直接修改了
    */
      

  2.   

    自己写的过程、包等可以通过字典USER_SOURCE 查看:
    SELECT * FROM USER_SOURCE WHERE NAME='PROCEDURE_NAME' AND TYPE='PROCEDURE';当然,如果用pl/sql developer 工具的话在右边对象procedure里就可以查看到,如zhuomingwang(Aspen) 所说,选中你的过程,右键edit就可以修改你的过程,修改好之后再编译一次就OK了
      

  3.   

    存放于数据字典的USER_SOURCE里面..一般你也就改你自己写的存储过程 
    语句如上:select text from user_source where name='大写的存储过程名' and type='PROCEDURE';