如果用的是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; 把前面后面的去掉,中间的部分就是过程的内容了,就可以直接修改了 */
自己写的过程、包等可以通过字典USER_SOURCE 查看: SELECT * FROM USER_SOURCE WHERE NAME='PROCEDURE_NAME' AND TYPE='PROCEDURE';当然,如果用pl/sql developer 工具的话在右边对象procedure里就可以查看到,如zhuomingwang(Aspen) 所说,选中你的过程,右键edit就可以修改你的过程,修改好之后再编译一次就OK了
存放于数据字典的USER_SOURCE里面..一般你也就改你自己写的存储过程 语句如上:select text from user_source where name='大写的存储过程名' and type='PROCEDURE';
如果在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;
把前面后面的去掉,中间的部分就是过程的内容了,就可以直接修改了
*/
SELECT * FROM USER_SOURCE WHERE NAME='PROCEDURE_NAME' AND TYPE='PROCEDURE';当然,如果用pl/sql developer 工具的话在右边对象procedure里就可以查看到,如zhuomingwang(Aspen) 所说,选中你的过程,右键edit就可以修改你的过程,修改好之后再编译一次就OK了
语句如上:select text from user_source where name='大写的存储过程名' and type='PROCEDURE';