當我們已經創建好了一個存儲過程,但發現創建的存儲過程有問題時,我們需要修改此存儲過程,以便數據庫系統中存在一個我們所需要的正確的存儲過程,有以下幾種方法可以實現(是在命令行中進行操作,不是在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 閱讀(4484)
評論(2) 編輯 收藏