当我们已经创建好了一个存储过程,但发现创建的存储过程有问题时,我们需要修改此存储过程,以便数据库系统中存在一个我们所需要的正确的存储过程,有以下几种方法可以实现(是在命令行中进行操作,不是在PL/SQL中操作,在PL/SQL中操作问题就变得简单了):
1)先DROP PROC PROC_A,然后重新CREATE PROC PROC_A,但此时可能会有一个问题,即如果A存储过程已被其他存储过程引用,则此时将不能DROP 掉A存储过程,所以这样就产生了下面的方法;
2)直接ALTER PROC PROC_A,即修改存储过程A,这种方法的好处有:
修改以前用CREATE PROCEDURE 命令创建的存储过程,并且不改变权限的授予情况以及不影响任何其它的独立的存储过程或触发器,
ALTER PROC[EDURE] procedure_name [;number]
[ {@parameter data_type } [VARYING] [= default] [OUTPUT]] [,...n]
[WITH
{RECOMPILE │ ENCRYPTION │ RECOMPILE , ENCRYPTION}]
[FOR REPLICATION]
AS
sql_statement [...n]
3)用创建或存在就替换的命令进行操作,即 CREATE OR REPLACE PROCEDURE PROC_A.
另:查看存储过程内容(文本)
select text from all_source where OWNER='USERNAME' and TYPE='PROCEDURE' and NAME='PROCNAME';
经过查看内容后,就可以确认下存储过程是否是已经修改后的了.
posted on 2008-08-21 16:40
henry1451 阅读(4481)
评论(2) 编辑 收藏