亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

PL/SQL結(jié)構(gòu)學(xué)習(xí)

系統(tǒng) 1942 0

PL/SQL結(jié)構(gòu)分為三塊:declare、begin、exception。其中begin必不可少。

塊一:

declare的作用是申明變量,包括變量的名稱及其相關(guān)屬性和是否定義初始值。

其相關(guān)屬性包括數(shù)據(jù)類型,長度。 其初始值定義時可以用:=也可以用default,當(dāng)用constant對數(shù)據(jù)類型進(jìn)行修飾之后,必須賦予初始值。

其次,對于變量的類型也可以定義為記錄型:%rowtype ;也可以定義成與某個字段類型相同,如%type。

實(shí)例:

1.%type

declare
V_ename emp.ename%type ;
begin
? select ename into V_ename from emp where empno = 7788 ;
? dbms_output.put_line('員工姓名為:'||V_ename) ;
end ;
/

2.%rowtype

declare
V_empRecord emp%rowtype ;
begin
? select * into V_empRecord from emp where empno = 7788 ;
? dbms_output.put_line('員工姓名:'||V_empRecord.ename) ;
? dbms_output.put_line('員工職位:'||V_empRecord.job) ;
? dbms_output.put_line('部門編號:'||V_empRecord.deptno) ;
? dbms_output.put_line('薪水:'||V_empRecord.sal) ;
? end ;
? /

塊二:

begin的作用是程序控制,它的內(nèi)容包含SQL語句和邏輯語句。如,條件分支結(jié)構(gòu),循環(huán)結(jié)構(gòu)。

條件分支結(jié)構(gòu):

結(jié)構(gòu),

1)if 條件 then

    statement1 ;

  end if ;

?2)if 條件 then

    statement1 ;

  else

    statement2 ;

  end if ;

3)if 條件 then

    statement1 ;

  elsif

    statement2 ;

  else

    statement3 ;

  end if ;

實(shí)例:

1.?
declare
V_empno emp.empno%type:=7788 ;
V_sal emp.sal%type ;
begin
?select sal into V_sal from emp where V_empno = empno ;
?if V_sal < 1500 then
?update emp set sal = sal + 100 where empno = V_empno ;
?end if ;
?end ;
? /?

循環(huán)結(jié)構(gòu):

結(jié)構(gòu),

1)基本循環(huán),

LOOP

  語句序列

  EXIT WHEN 布爾型表達(dá)式(為真) ;

END LOOP ;

實(shí)例:

1.
--向部門表中插入10條數(shù)據(jù),部門編號從41到50
declare
??? V_counter binary_integer:=41 ; --pl/sql整型數(shù)據(jù)類型 binary_integer????????????????????????????
??? begin
????? LOOP
????? insert into dept(deptno,dname) values(V_counter,'loop') ;--語句序列
????? V_counter:=V_counter + 1 ;
????? EXIT WHEN V_counter > 50 ;--布爾表達(dá)式(為真)
????? END LOOP ;
????? commit ;
????? end ;
????? /

2)WHILE_LOOP循環(huán),

WHILE 條件 LOOP

  語句序列

END LOOP ;

實(shí)例:

1.
--向部門表中插入10條數(shù)據(jù),部門編號從51到60
declare
V_counter binary_integer:=51 ;
begin
? WHILE V_counter <= 60 LOOP? --條件
? insert into dept(deptno,dname) values (V_counter,'while loop') ; --語句序列
? V_counter := V_counter + 1 ;
END LOOP ;
commit ;
end;
/

3)數(shù)值for_LOOP循環(huán),

FOR 計(jì)數(shù)器 IN 低界...高界 LOOP

  語句序列

END LOOP ;

?實(shí)例:

--向部門表中插入5條數(shù)據(jù),部門編號從61到65
declare
? V_counter binary_integer ;
begin
? FOR V_counter IN 61..65? LOOP? --FOR 計(jì)數(shù)器 IN [REVERES]低界..高界? LOOP
? insert into dept(deptno,dname) values (V_counter,'for loop') ;--語句序列
END LOOP ;
commit ;
end ;
/

塊三:異常處理exception

結(jié)構(gòu),

exception

  WHEN first_exception THEN <code to handle first exception>

  WHEN second_exception THEN <code to handle second exception>

  WHEN others THEN <code to handle others exception>

實(shí)例:

--EXCEPTION 實(shí)例
declare
V_job emp.job%type := 'ANALYST' ;
V_sal emp.sal%type ;
begin
? select sal into V_sal from emp where job = V_job ;
? if V_sal <= 1500 then? --condition
?update emp set sal = sal + 100 WHERE job = V_job ;? --statement1
? end if ;
exception
? WHEN NO_DATA_FOUND THEN
??? DBMS_OUTPUT.put_line('數(shù)據(jù)庫中沒有編碼為'||V_job||'的員工') ;
? WHEN TOO_MANY_ROWS THEN
??? DBMS_OUTPUT.put_line('程序運(yùn)行錯誤!請使用游標(biāo)') ;?
? WHEN OTHERS THEN
??? DBMS_OUTPUT.put_line('發(fā)生其它錯誤!') ;
end ;
/ --由于有多個記錄的job是‘ANALYST’,因此在執(zhí)行程序的過程中無法給未指明的記錄進(jìn)行更新因而報(bào)錯。如果沒有異常處理,程序?qū)o法執(zhí)行而停止。而異常處理使得程序執(zhí)行完畢,不影響之后的程序。

PL/SQL結(jié)構(gòu)學(xué)習(xí)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 午夜免费福利视频 | 国产精品1000部在线观看 | 狠狠色丁香婷婷综合激情 | 亚洲永久精品一区二区三区 | 狠狠丁香激情久久综合 | 国产婷婷综合在线视频中 | 亚洲免费视频观看 | 亚洲天堂久久精品 | 亚洲国产一区二区a毛片日本 | 播五月 | 狠狠色丁婷婷综合久久 | 国产午夜精品理论片久久影视 | 久久99深爱久久99精品 | 精品久久久久久综合日本 | 国内精品久久久久久久97牛牛 | 欧美日韩国产成人综合在线 | 曰曰啪天天拍视频在线 | 久久免费手机视频 | 杨幂国产精品福利在线观看 | 欧美成人在线免费观看 | 四虎影视在线观看2413 | 国产乱子伦一区二区三区 | 中文字幕日本一区久久 | 91在线精品老司机免费播放 | 四虎影视永久免费视频观看 | 日韩欧一级毛片在线播无遮挡 | 国产精品96久久久久久久 | 国产美女在线免费观看 | 日本欧美一区二区三区在线观看 | 一级毛片不卡免费看老司机 | 欧美成人精品欧美一级乱黄 | 最新国产在线精品91尤物 | 四虎影院wwww| aⅴ在线免费观看 | 日产一二三四五六七区麻豆 | 久久午夜网 | 黄色毛片免费看 | 欧美xxxx成人免费视频 | 色婷婷激婷婷深爱五月小蛇 | 午夜时刻免费实验区观看 | 国产毛片毛片精品天天看 |