--函式[in out 引數]
create
orreplace
function get_test(m_id in
number, str1 out varchar2) --
引數不需要型別長度
return
varchar2
is str2 varchar2(10); --
變數需要型別長度
begin
select
t.ename, t.job
into
str1, str2
from
scott.emp t
where t.empno =
m_id;
return
str2;
endget_test;
--呼叫函式[位置表示法]
declare
s1 varchar2(10
); s2
varchar2(10
); s3
number(30) default
7521; --
default 預設值
begin
s3:=
7566
; s2 :
= get_test(s3, s1);--
引數次序
dbms_output.put_line(s1 ||''
||s2);
end;
--呼叫函式 [名稱表示法]
declare
s1 varchar2(10
); s2
varchar2(10
);begin
s2 :
= get_test( str1=>s1,m_id=>
7521); --
名稱的對應關係,次序並不重要
dbms_output.put_line(s1 ||''
||s2);
end;
--儲存過程1
create
orreplace
procedure get_test1(m_id in
number, str1 out varchar2) --
引數不需要型別長度
isbegin
select t.ename into str1 from scott.emp t where t.empno =
m_id;
endget_test1;
--呼叫
declare
s1 varchar2(100
);begin
get_test1(
7521
, s1);
dbms_output.put_line(s1);
end;
createorreplace
procedure get_test2(m_id in
number)
isstr1
varchar2(100); --
變數在is後面定義
begin
select t.ename into str1 from scott.emp t where t.empno =
m_id;
dbms_output.put_line(str1);
end;
--sql視窗執行
begin
get_test2(
7521
);end;--
在命令視窗的執行
execute get_test2(7521);
oracle學習 建立函式呼叫函式及儲存過程
create or replace function f get name t empno in varchar2 return varchar2 is v emp name emp.ename type begin select e.ename into v emp name from emp e...
MySQL函式 建立 呼叫 檢視和刪除函式
含義 一組預先編譯好的sql語句的集合,理解成批處理語句 好處 1 提高 的重用性 2 簡化操作 3 減少了編譯次數並且減少了和資料庫伺服器的連線次數,提高了效率 儲存過程與函式的區別 關鍵字 呼叫語法 返回值 應用場景 儲存過程 procedure call 儲存過程 可以有0個或多個返回 用於做...
函式的呼叫過程 函式呼叫棧幀的建立
函式的呼叫過程 我們知道每一次函式呼叫都是乙個過程,這個過程我們通常稱之為 函式的呼叫過程。而這個過程要為函式開闢棧空間,用於本次函式呼叫中臨時變數的儲存,現場保護,這塊棧空間我們稱之為 函式棧幀。而函式棧幀的維護需要兩個暫存器 esp和ebp,在呼叫過程中,這兩個暫存器存放了維護這個棧的棧頂和棧底...