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...