Oracle 10g儲存過程學習一

2021-06-26 16:18:10 字數 2630 閱讀 3394

--1、建立儲存過程(無引數)

create or replace procedure out_time

isbegin

dbms_output.put_line(systimestamp);

end;

--呼叫儲存過程

exec out_time;

call out_time();

--2、建立儲存過程(有引數,且顯示指定為輸入引數,如果不指定引數模式,預設為輸入引數)

create or replace procedure update_comtype_name

(param_name in communitytype.name%type)

isbegin

--修改名稱

update communitytype

set communitytype.english_name = param_name

where communitytype.community_type_id = 'ebook';

commit;

--異常處理

exception

when no_data_found then

dbms_output.put_line('沒有找到資源庫');

end;

--呼叫儲存過程

call update_comtype_name('電子圖書');

--結果

--呼叫前

--呼叫後

--3、建立儲存過程(有引數,且顯示指定為輸出引數,同時賦預設值)

create or replace procedure update_comtype_name

(param_id in communitytype.community_type_id%type,new_name out communitytype.name%type)

isbegin

--查詢修改後的值

select communitytype.english_name into new_name

from communitytype

where communitytype.community_type_id = param_id;

--輸出

dbms_output.put_line(new_name);

end;

--呼叫儲存過程(在pl/sql中開啟commond視窗)

var new_name varchar2(500);

exec update_comtype_name('ebook',:new_name);

--結果

--4、修改後再查詢修改後的值

create or replace procedure update_comtype_name

(param_id in communitytype.community_type_id%type,

param_eng_name in communitytype.english_name%type,

new_name out communitytype.name%type)is

begin

--修改名稱

update communitytype

set communitytype.english_name = param_eng_name

where communitytype.community_type_id = param_id;

commit;

--查詢修改後的值

select communitytype.english_name into new_name

from communitytype

where communitytype.community_type_id = param_id;

--輸出

dbms_output.put_line(new_name);

end;

--呼叫儲存過程(在pl/sql中開啟commond視窗)

var new_name varchar2(500);

exec update_comtype_name('ebook','電子圖書修改',:new_name);

--5、刪除過程

drop procedure update_comtype_name;

--6、建立儲存過程時,將引數同時設定為輸入和輸出

create or replace procedure compute

(num1 in out number,num2 in out number)

is--在利用輸入引數時,需要定義臨時變數將運算結果儲存起來

v1 number;

v2 number;

begin

v1:=num1/num2;

v2:=mod(num1,num2);

--最後返回結果時,將臨時引數的值賦給輸入引數(即輸出引數)

num1:=v1;

num2:=v2;

end;

ORACLE10G解除安裝過程

解除安裝步驟 1 開始 設定 控制面板 管理工具 服務 停止所有oracle服務。沒有起動的就不用停用了 2 開始 程式 oracle oradb10g home1 oracle installation products universal installer 卸裝所有oracle產品 不要按下一...

Oracle10g下簡單儲存過程編寫

經過個把小時的折騰,寫了乙個簡單的儲存過程。一直都是改別人的儲存過程,沒有自己 寫過,這樣很不好。寫了乙個簡單功能的 有判斷選擇,迴圈遍歷游標。儲存過程注意點 1.注意其基本的語法。2.關注游標,在10g中定義游標一般都使用sys refcursor 而cursor只是用來在申明部分進行初始化,而s...

oracle 10g 學習之函式和儲存過程(12)

一 函式 1.函式的 helloworld 返回乙個 helloworld 的字串 create or replace function helloworld return varchar2 isbegin return helloworld end 執行函式 begin dbms output.p...