儲存過程2

2021-06-20 21:05:18 字數 3029 閱讀 3434

pl/sql developer

1,入門(簡單例子)

描述:儲存過程如何將一條新紀錄插入到資料庫表(該例可體現在填報錶用儲存過程方式完成更新);

creat table test_pro(id varchar2null,name varchar2 null);

儲存過程任務:將id為『zhangsan』,name為「張三」的記錄插入到資料庫。

問題分析:我們知道插入到資料庫必須執行insert語句,因此我們儲存過程幹的活兒就是將insert語句封裝成可執行的語句塊,同時要接收插入的資料。

儲存過程實現:

create

orreplace

procedure

itestpro(a

invarchar

, b

invarchar

) is

id1

varchar2

(200);

name1 varchar2(200);

begin --

接收id

及使用者名稱

id1:=a;

name1:=b; --

列印接收到的引數

dbms_output.putline(id1+」:」+name1); --

插入資料庫接收到的資料記錄

insert into ros.test_pro(id,name) values(id1,name1);

enditestpro;

優點:

儲存過程可儲存在資料庫,如果再有該錶插入資料庫的需求,我們只需呼叫其同時將資料傳給它即可,節省了重複寫insert等的時間。

活學活用:思考如何將id為「zhangsan」的名字改為「張小山」?

2,帶條件判斷

掌握if語句的三種形式:

(1)      if-then 語句

if condition then

sequences_of_statements

end if;

(2)      if-then-else語句

if condition then

sequences_of_statements1

else

sequences_of_statements2

end if;

(3)      if-then-elsif

if condition1 then

sequences_of_statements1

elsif condition2 then

sequences_of_statements2

else

sequences_of_statements3

end if;

(4)      case語法

case selector

when exp1 then sequences_of_statements1

when exp2 then sequences_of_statements2

when exp3 then sequences_of_statements3

end case;

3,迴圈

掌握迴圈的三種形式:

(1)      loop迴圈

loop

sequence_of_statements;

end loop;

(2)      while-loop迴圈

while condition loop

sequence_of_statements;

end loop;

(3)      for-loop迴圈

for 迴圈範圍 loop

sequence_of_statements

end loop;

4,返回基礎引數

描述:採用test_pro表,根據使用者id返回其名字的過程

create

orreplace

procedure

itestpro(a

invarchar

, b

outvarchar

) is

aa varchar2

(200);

begin --

接收使用者

id,如「

zhangsan」

aa:=a; --

輸出使用者id

dbms_output.put_line(aa); --

根據使用者

id查詢名字,並將其返回給呼叫環境變數「b」

select

name

into

b from

test_pro

where

id=aa;

enditestpro;

結果:zhangsan 張三

5,返回游標(資料集)

描述:返回test_pro表內的所有記錄

create

orreplace

procedure

itestpro(a

invarchar

, b

outtypes.rq_ref_cursor) is

aa varchar2

(200);

begin

aa:=a;

dbms_output.put_line(aa); /*

儲存過程返回結果集需要借助游標,這裡

b為定義的游標型別,

for後面的語句可以為任意複雜

sql */

open

b for

select

id,name

from

test_pro;

enditestpro;

儲存過程 2

1,呼叫沒有引數的儲存過程 set conn server.createobject adodb.connection set cmd server.createobject adodb.command strconn dsn pubs uid sa pwd conn.open strconn se...

儲存過程2

今天老師又帶我們回顧了儲存過程方面的知識 1 我們之所以要學習儲存過程是因為使用儲存過程可以一次性執行成批的sql 語句,不僅節省了我們的時間而且也提高了伺服器的操作速度。2 儲存過程的優點 1 批處理,減少客戶和伺服器之間的交流次數 2 伺服器端執行,移植性好 3 安全要求高的行業 4 包含流程控...

儲存過程2

1.建立三張表 dept10,dept20,dept30,表結構和 dept 一致 不拷貝資料 create table dept10 as select from dept where 1 2 create table dept20 as select from dept where 1 2 cr...