oracle如何修改存儲過程
A. oracle 如何修改存儲過程名稱(不要跟我說先drop或者or replace之類的,謝謝)
PACKAGE can』t be renamed.
PACKAGE BODY can』t be renamed.
PROCEDURE can』t be renamed.
FUNCTION can』t be renamed.
B. oracle 中用什麼命令執行一個帶參數的存儲過程
具體如下:
1、第一步,創建一個新的存儲過程,見下圖,轉到下面的步驟。
C. 怎麼樣利用存儲過程實現(oracle )的添加、刪除、查詢、修改啊
列個表,里邊我一樣給你寫個例子,你看著學學,我盡量給你做出注釋
--建一個學生表
create table student (id int,name varchar2(10));
--插入兩條測試數據
insert into student values (1,'張三');
insert into student values (2,'李四');
commit;
-------------用存儲過程添加id為3,姓名為王五的學生-----------
create or replace PROCEDURE P_INSERT
(v_id int,--定義id變數
v_name varchar2--定義姓名變數)
is
begin
insert into student values (v_id,v_name);--執行插入操作
commit;
end;
執行的時候用下邊的
BEGIN
p_insert(3,'王五');
END;
然後select * from student;
你會發現多了3 王五 這條數據
---------------用存儲過程刪除id為3的學生------------
create or replace PROCEDURE P_DELETE
(v_id int)--定義變數id
is
begin
delete from student where id=v_id;--執行刪除操作
commit;
end;
執行
BEGIN
p_delete(3);
END;
執行完上邊後執行
select * from student;
你會發現id為3的學生沒了
---------------用存儲過程查詢id為2的學生姓名------------
create or replace PROCEDURE P_SELECT
(v_id int)--定義輸入變數id
is
v_name varchar2(10);--定義輸出變數name
begin
select name into v_name from student where id=v_id;--執行查詢
dbms_output.put_line('學生姓名為:'||v_name);--輸出結果
end;
執行
BEGIN
p_select(2);
END;
輸出的結果就是id為2的學生姓名
-----------用存儲過程查詢id為1的學生姓名修改為趙六----------
create or replace PROCEDURE P_UPDATE
(v_id int,--定義要修改的id
v_name varchar2)--定義要修改後的名字
is
begin
update student set name=v_name where id=v_id;--執行修改操作
commit;
end;
執行
BEGIN
P_UPDATE(1,'趙六');
END;
然後你再
select * from student;
你會發現id為1的已經為趙六了
上邊這些都是最簡單的存儲過程,在實際過程中肯定沒這么簡單
還有,我讓你執行的
BEGIN
P_UPDATE(1,'趙六');
END;
這種東西可以當做oracle的job調用,可以定時執行
再有不懂的你再問吧,上邊的僅做參考
累死我了,哈哈
D. 誰能介紹如何修改一個Oracle存儲過程的實際操作步驟
以下是介紹如何修改一個Oracle存儲過程的實際操作步驟,如果你要執行Oracle存儲過程,首先你需要寫出一個關於輸出的字元串「Hello World!」的存儲過程,以下的相關內容就是接這講述Oracle存儲的步驟。
讓我們寫一個輸出字元串「Hello World!」的存儲過程,用Notepad打開你的skeleton.sql 文件,. 用DBMS_OUTPUT.PUT_LINE 過程調用去替換NULL語句,如下所示:
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
END;
保存到文件skeleton.sql.
從SQL*Plus命令行, 打開文件skeleton.sql .
SQL> @skeleton
SQL>
CREATE OR REPLACE PROCEDURE skeleton
IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Hello World!');
* END;
SQL> /
SQL*Plus 通知你存儲過程成功創建並輸出提示信息:Procere created.
SQL>
用EXECUTE 命令運行你的存儲過程:
SQL> EXECUTE skeleton;
SQL*Plus顯示存儲過程運行成功:
PL/SQL procere successfully completed.
我們想要的輸出字元串 "Hello World!"沒有出來,在顯示一個DBMS_OUTPUT.PUT_LINE 結果前需要運行一個SET命令,在SQL*Plus 命令行提示符,鍵入:
SQL> SET SERVEROUTPUT ON
再次執行你的存儲過程:
SQL> EXECUTE skeleton;
現在結果輸出了:
Hello World!
PL/SQL procere successfully completed.
當調試一個存儲過程時,遵循一樣的步驟,修改SQL文件,創建存儲過程,執行存儲過程,根據編譯器反饋的出錯信息進行修改,這一步是非常繁瑣的,需要依靠經驗。
在實際的商用存儲過程的開發調試過程中,由於涉及很多表、類型、游標、循環、條件等復雜的邏輯,和PL/SQL語句的靈活運用,編譯時會產生很多錯誤提示信息,程序員在根據這些錯誤信息定位,進行修正,再編譯最後得到正確的結構;
放棄一個Oracle存儲過程
如果在資料庫中你不在需要一個存儲過程你可以刪除它,SQL語句 DROP PROCEDURE 完成從資料庫中刪除一個存儲過程,DROP PROCEDURE 在SQL中被歸類為數據定義語言(DDL) 類操作,其他的例子有CREATE, ALTER, RENAME 和TRUNCATE。.
在SQL*Plus 命令提示符下,使用DROP PROCEDURE SQL 語句刪除你的叫做skeleton的存儲過程:
SQL> DROP PROCEDURE skeleton;
SQL*Plus assures us the procere has been removed:
Procere dropped.
本文詳細討論了如何使用Oracle工具開發Oracle存儲過程的步驟。最後在存儲過程的使用中可能是程序直接調用,也可能被觸發器調用。
希望我的回答能對您有所幫助!!!
E. oracle :下面的存儲過程怎麼修改啊
你把execute immediate v_sql;這個改成dbms_output.put_line(V_sql);
然後將 limit 1000改小點,改成limit 10
在sql plus中執行存儲過程前先執行命令:
set serveroutput on;
然後再執行這個存儲過程
執行完了之後你就可以看到你輸出的這個V_Sql語句了,你再看看哪裡存在問題好了