Oracle中過程和函式

2021-07-14 18:18:54 字數 3406 閱讀 5334

--

建立乙個過程

create

orreplace

procedure

addnewcountry(

--%type

意思指這裡的字段和表裡面對應的字段型別一致

c_id   countries.country_id%

type

,v_name   countries.country_name%

type

,v_remark   countries.country_remark%

type

)  

asbegin--在

countries

表中插入新記錄

insert

into

countries(country_id,country_name,country_remark)

values

(c_id,v_name,v_remark);

endaddnewcountry;

--使用建立的過程

begin

addnewcountry(

'123'

,'china','

世界第一大國中國');

end;

--建立過程的另外乙個寫法

create

orreplace

procedure

addnewcountry

asbegin--在

countries

表中插入新記錄

insert

into

countries(country_id,country_name,country_remark)

values

(c_id,v_name,v_remark);

dbms_output.put_line(

'the   record   has  insert!'

);end

addnewcountry;

create

orreplace

procedure

getdate

asbegin

dbms_output.put_line(

'the   date  is:'

||to_char(

sysdate

,'dd-mm-yyyy'

));end

getdate;

--使用該過程

begin

addnewcountry;

getdate;

end;

宣告傳參函式 --

建立乙個函式

create

orreplace

function

countrynumber(

n_maxnumber  

number

,n_minnumber  

number

)return

varchar2

isn_result  

number(5

);v_returnvalue  

varchar2(50

);begin--從

country

表中選擇記錄的數量

select

count

(*)

into

n_result  

from

country;

ifn_result > n_maxnumber  

then

v_returnvalue:=

'the   number   too   big!'

;elsif

n_result < n_minnumber  

then

v_returnvalue:=

'the   number   too   little'

;else

v_returnvalue:=

'maybe   right!'

;endif;

return

v_returnvalue;

endcountrynumber;

--執行上面的函式

declare

v_maxnumber  

number

:=10000

;v_minnumber  

number

:=10

;v_result  

varchar2(50

);begin

v_result:=countrynumber(v_maxnumber,v_minnumber);

dbms_output.put_line(v_result);

end;

帶預設值函式 --

建立乙個函式

create

orreplace

function

countrynumber(

n_maxnumber  

number

default

1000

,n_minnumber  

number

default10)

return

varchar2

isn_result  

number(5

);v_returnvalue  

varchar2(50

);begin--從

country

表中選擇記錄的數量

select

count

(*)

into

n_result  

from

country;

ifn_result > n_maxnumber  

then

v_returnvalue:=

'the   number   too   big!'

;elsif

n_result < n_minnumber  

then

v_returnvalue:=

'the   number   too   little'

;else

v_returnvalue:=

'maybe   right!'

;endif;

return

v_returnvalue;

endcountrynumber;

--執行上面的函式

declare

v_result  

varchar2(50

);begin

v_result:=countrynumber(v_maxnumber,v_minnumber);

dbms_output.put_line(v_result);

end;

Oracle中編譯過程,函式和包

編譯過程 alter procedure new procedure compile 為了能夠執行此命令,需要擁有這個過程,或者具有alter any procedure系統許可權。編譯函式 alter function new function compile 為了能夠執行,需要擁有此函式,或者具...

oracle中函式和儲存過程的區別和聯絡

一 儲存過程 1.定義 儲存過程是儲存在資料庫中提供所有使用者程式呼叫的子程式,定義儲存過程的關鍵字為procedure。2.建立儲存過程 create or replace procedure 儲存過程名 引數1 型別,引數2 out 型別 as變數名 型別 begin 程式 體 end 示例一 ...

oracle中函式和儲存過程簡單示例 動態sql

oracle中函式和儲存過程 1.函式 create or replace function getartcount keyword in varchar2 return number asresult number sqlt varchar2 4000 begin select t.sys doc...