Oracle 10g建立函式 帶輸入 輸出引數

2021-08-31 02:45:27 字數 2710 閱讀 6220

--oracle10g 開發函式

--1、建立不帶引數的函式

create or replace function get_user

return varchar2

isv_user varchar2(100);

begin

select username into v_user from user_users;

return v_user;

end;

--在sql中利用函式進行查詢

select get_user from dual;

--2、建立帶有輸入引數的函式

create or replace function get_name(id in communitytype.community_type_id%type)

return varchar2

asv_name communitytype.name%type;

begin

select name into v_name from communitytype com

where com.community_type_id = id;

return v_name;

end;

--使用函式

select get_name('ebook') from dual;

--3、建立帶有輸出的函式

create or replace function get_name(id in communitytype.community_type_id%type,name out communitytype.name%type)

return varchar2

asv_eng_name communitytype.english_name%type;

begin

select com.name,com.english_name into name,v_eng_name from communitytype com

where com.community_type_id = id;

return v_eng_name;

end;

--使用函式(因為該函式帶有out引數,不能再sql中直接呼叫,我們選擇在command視窗執行函式)

sql> var name varchar2(50)

sql> var eng_name varchar2(50)

sql> exec :eng_name:=get_name('ebook',:name);

--結果顯示

[list]

pl/sql procedure successfully completed

eng_name

---------

電子圖書修改

name

---------

電子圖書

[/list]

--4、建立同時帶有in和out引數的函式

create or replace function result

(num1 number,num2 in out number)

return number

asv_result number(6);

v_remainder number;

begin

v_result:=num1/num2;

v_remainder:=mod(num1,num2);

num2:=v_remainder;

return v_result;

end;

--使用函式(因為該函式帶有out引數,不能再sql中直接呼叫,我們選擇在command視窗執行函式)

sql> var result1 number

sql> var result2 number

sql> exec :result2:=30

--結果顯示

[list]

pl/sql procedure successfully completed

result2

---------

30sql> exec :result1:=result(100,:result2)

pl/sql procedure successfully completed

result1

---------

3result2

---------

[/list]

10--5、刪除函式

drop function result;

--6、檢視函式源**

select text from user_source where name = 'resul';

oracle10g建立使用者

doctype html public wcdtd xhtml stricten httpwwwworgtrxhtmldtdxhtml strictdtd oracle10g的建立使用者名稱 linux下oracle的啟動 以oracle身份登入 啟動 lsnrctl start 登入 sqplus...

Oracle 10g日期時間函式

add months d,n 返回特定日期時間d之後或之前的n個月所對應的日期時間。n為正整數表示之後,n為負整數表示之前 select add months sysdate,5 from dual 輸出 2010 08 26 13 24 28 current date 返回當前會話時區所對應的日期...

oracle10g 解除安裝

1 oracle 10g解除安裝軟體環境 1 windows xp oracle 10g2 oracle 安裝路徑為 d oracle 實現方法 1 開始 設定 控制面板 管理工具 服務停止所有 oracle 服務 2 開始 程式 oracle oradb 10g home1 oracle inst...