函式和存過的建立呼叫

2021-09-06 20:42:22 字數 1846 閱讀 3829

--

函式[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;

create

orreplace

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,在呼叫過程中,這兩個暫存器存放了維護這個棧的棧頂和棧底...