--
建立乙個過程
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...