一、oracle建立儲存過程
1、基本語法
create
orreplace
procedureupdate_emp_sal
(name
inout type,
name
inout type, ...
) is
begin
endupdate_emp_sal;
2、寫乙個簡單的例子修改emp表的ename欄位
create
orreplace
procedure
update_emp
(v_empno
varchar2
,v_ename
varchar2
) is
begin
update
empset
ename
=v_ename
where
empno
=v_empno;
endupdate_emp;
呼叫方法如下:
sql>
execupdate_emp(
'7935',
'test');
2、有返回值的儲存過程
就寫乙個簡單的返回empno=7935的sal值
create
orreplace
procedure
emp_out_sal
(v_empno in
varchar2
,v_sal out
number
) is
vsal number(7
,2);begin
select
sal
into
vsal
from
emp
where
empno
=v_empno;
v_sal:=
vsal;
end;
呼叫有返回值的過程
sql>
varvsal
number
sql>
exec
emp_out_sal(
'7935
',:vsal); 或者
sql>
varvsal
number
sql>
call emp_out_sal(
'7935
',:vsal);
執行結果
vsal
---------
700
二、oracle建立函式(function)
1、基本語法規則如下:
create
orreplace
function
(name
intype, name
intype, ...)
return
number
isresult
number
;begin
return
(result);
end;
2、寫乙個簡單的查詢例子查詢出empno=7935的sal值
create
orreplace
function
ret_emp_sal(v_ename
varchar2
)return
number
isv_sal
number(7
,2);begin
select
nvl(sal,0)
into
v_sal
from
emp
where
lower
(ename)
=lower
(v_ename);
return
v_sal;
end;
呼叫此函式:
sql三、oracle建立包>
varvsla
number
sql>
call ret_emp_sal
('7935')
into
:vsal;
包用於組合邏輯相關的過程和函式,它由包規範和包體兩個部分組成。包規範用於定義公用的常量、變數、過程和函式,
建立包規範可以使用create package命令,建立包體可以使用create package body
1、建立包規範
create
package emp_pkg is
procedure
emp_update_ename(v_empno
varchar2
,v_ename
varchar2
);function
emp_get_sal(v_empno
varchar2
) return
number
;end
;2、建立包體
create
orreplace
package body emp_pkg
isprocedure
emp_update_ename
(v_empno
varchar2
,v_ename
varchar2)is
vename
varchar2(32
);begin
update
emp
setename
=v_ename
where
empno
=v_empno;
commit
;select
ename
into
vename
from
emp
where
empno
=v_empno;
dbms_output.put_line(
'雇員名稱:'||
vename);
end;
function
emp_get_sal
(v_empno
varchar2
)return
number
isvsal
number(7
,2);begin
select
sal
into
vsal
from
emp
where
empno
=v_empno;
return
vsal;
end;
end;
在此提示,在沒有建立包規範就建立包體,會失敗,要使用包,必須先建立包規範,然後在建立包體
當要呼叫包的過程和函式時,在過程和函式的名稱前加上包名作為字首(包名.子程式名稱),而如果要訪問其他方案的包時需要在包的名稱前加上方案的名稱
(方案名稱.包名.子程式名稱)
例項:
sql>
varvsla
number
sql>
call emp_pkg.emp_get_sal(
'7935')
into
:vsal;
method called
vsal
---------
700sql
>
exec
emp_pkg.emp_update_ename(
'7935',
'helong');
雇員名稱:helong
sql>
call emp_pkg.emp_update_ename(
'7935',
'helong');
method called
sql>
select
*from
dual;
dummy
-----
x雇員名稱:helong
Oracle建立儲存過程 建立函式 建立包
一 oracle建立儲存過程 1 基本語法 create or replace procedure update emp sal name in out type,name in out type,is begin end update emp sal 2 寫乙個簡單的例子修改emp表的ename欄...
oracle儲存過程 建立儲存過程語句
一 建立儲存過程語句 語法 create or replace procedure testname argument1 type1,as begin end testname 例子 create orreplace procedure test name arg1 varchar2,arg2 nu...
Oracle 建立表,儲存過程
1.首先建立乙個customer 表 create table customer customerid varchar2 10 primary key,customername varchar2 20 custoemr varchar2 8 custoemrage int 2.插入四行資料 inse...