[
推薦
]
ORACLE?PL/SQL
編程詳解之
一
:
PL/SQL?
程序設(shè)計(jì)簡(jiǎn)介
(
千里之行
,
始于足下
)
——
通過(guò)知識(shí)共享樹立個(gè)人品牌。
繼上
六
篇:
??????? [ 頂 ]ORACLE?PL/SQL 編程詳解之二: PL/SQL 塊結(jié)構(gòu)和組成元素 ( 為山九仞,豈一日之功 )
????? ?
[
推薦
]ORACLE?PL/SQL
編程詳解之三:
PL/SQL
流程控制語(yǔ)句
(
不給規(guī)則,不成方圓
)
??????? [ 推薦 ]ORACLE?PL/SQL 編程之四:把游標(biāo)說(shuō)透 ( 不怕做不到,只怕想不到 )
? [ 推薦 ]ORACLE?PL/SQL 編程之五:異常錯(cuò)誤處理 ( 知已知彼、百戰(zhàn)不殆 )
?? ? ???? ORACLE?PL/SQL 編程之六:把過(guò)程與函數(shù)說(shuō)透 ( 窮追猛打,把根兒都拔起 !)?
? ORACLE?PL/SQL 編程之八:把觸發(fā)器說(shuō)透 ?
接下來(lái) 再次 介紹PL/SQL的基礎(chǔ)篇: PL/SQL?程序設(shè)計(jì)簡(jiǎn)介 ,還望大家繼續(xù)支持與推薦~!
?
本篇主要內(nèi)容如下:
第
一
章???
PL/SQL?
程序設(shè)計(jì)簡(jiǎn)介
1.
2
??PL/SQL
的
優(yōu)點(diǎn)或特征
1.2.1??
有利于客戶
/
服務(wù)器環(huán)境應(yīng)用的運(yùn)行
?
SQL
語(yǔ)言只是訪問(wèn)、操作數(shù)據(jù)庫(kù)的語(yǔ)言,并不是一種具有流程控制的程序設(shè)計(jì)語(yǔ)言,而只有程序設(shè)計(jì)語(yǔ)言才能用于應(yīng)用軟件的開(kāi)發(fā)。
PL?/SQL
是一種高級(jí)數(shù)據(jù)庫(kù)程序設(shè)計(jì)語(yǔ)言,該語(yǔ)言專門用于在各種環(huán)境下對(duì)
ORACLE
數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。由于該語(yǔ)言集成于數(shù)據(jù)庫(kù)服務(wù)器中,所以
PL/SQL
代碼可以對(duì)數(shù)據(jù)進(jìn)行快速高效的處理。除此之外,可以在
ORACLE
數(shù)據(jù)庫(kù)的某些客戶端工具中,使用
PL/SQL
語(yǔ)言也是該語(yǔ)言的一個(gè)特點(diǎn)。本章的主要內(nèi)容是討論引入
PL/SQL
語(yǔ)言的必要性和該語(yǔ)言的主要特點(diǎn),以及了解
PL/SQL
語(yǔ)言的重要性和數(shù)據(jù)庫(kù)版本問(wèn)題。還要介紹一些貫穿全書的更詳細(xì)的高級(jí)概念,并在本章的最后就我們?cè)诒緯咐惺褂玫臄?shù)據(jù)庫(kù)表的若干約定做一說(shuō)明。
1.
1
???SQL
與
PL/SQL
1.
1
.1??
什么是
PL/SQL?
PL/SQL
是?
Procedure?Language?&?Structured?Query?Language?
的縮寫。
ORACLE
的
SQL
是支持
ANSI(American?national?Standards?Institute)
和
ISO92?(International?Standards?Organization)
標(biāo)準(zhǔn)的產(chǎn)品。
PL/SQL
是對(duì)
SQL
語(yǔ)言存儲(chǔ)過(guò)程語(yǔ)言的擴(kuò)展。從
ORACLE6
以后,
ORACLE
的
RDBMS
附帶了
PL/SQL
。它現(xiàn)在已經(jīng)成為一種過(guò)程處理語(yǔ)言,簡(jiǎn)稱
PL/SQL
。目前的
PL/SQL
包括兩部分,一部分是數(shù)據(jù)庫(kù)引擎部分;另一部分是可嵌入到許多產(chǎn)品(如
C
語(yǔ)言,
JAVA
語(yǔ)言等)工具中的獨(dú)立引擎。可以將這兩部分稱為:數(shù)據(jù)庫(kù)
PL/SQL
和工具
PL/SQL
。兩者的編程非常相似。都具有編程結(jié)構(gòu)、語(yǔ)法和邏輯機(jī)制。工具
PL/SQL
另外還增加了用于支持工具(如
ORACLE?Forms
)的句法,如:在窗體上設(shè)置按鈕等。本章主要介紹數(shù)據(jù)庫(kù)
PL/SQL
內(nèi)容。
1.
2
??PL/SQL的
優(yōu)點(diǎn)或特征
1.2.1??
有利于客戶
/
服務(wù)器環(huán)境應(yīng)用的運(yùn)行
對(duì)于客戶
/
服務(wù)器環(huán)境來(lái)說(shuō),真正的瓶頸是網(wǎng)絡(luò)上。無(wú)論網(wǎng)絡(luò)多快,只要客戶端與服務(wù)器進(jìn)行大量的數(shù)據(jù)交換。應(yīng)用運(yùn)行的效率自然就回受到影響。如果使用
PL/SQL
進(jìn)行編程,將這種具有大量數(shù)據(jù)處理的應(yīng)用放在服務(wù)器端來(lái)執(zhí)行。自然就省去了數(shù)據(jù)在網(wǎng)上的傳輸時(shí)間。
1.2.2??
適合于客戶環(huán)境
PL/SQL
由于分為數(shù)據(jù)庫(kù)
PL/SQL
部分和工具
PL/SQL
。對(duì)于客戶端來(lái)說(shuō),
PL/SQL
可以嵌套到相應(yīng)的工具中,客戶端程序可以執(zhí)行本地包含
PL/SQL
部分,也可以向服務(wù)發(fā)
SQL
命令或激活服務(wù)器端的
PL/SQL
程序運(yùn)行。
1.2.
3
??
過(guò)程化
PL/SQL
是
Oracle
在標(biāo)準(zhǔn)
SQL
上的過(guò)程性擴(kuò)展,不僅允許在
PL/SQL
程序內(nèi)嵌入
SQL
語(yǔ)句,而且允許使用各種類型的條件分支語(yǔ)句和循環(huán)語(yǔ)句,可以多個(gè)應(yīng)用程序之間共享其解決方案
。
1.2.
4
??
模塊化
PL/SQL
程序結(jié)構(gòu)是一種描述性很強(qiáng)、界限分明的塊結(jié)構(gòu)、嵌套塊結(jié)構(gòu),被分成單獨(dú)的過(guò)程、函數(shù)、觸發(fā)器,且可以把它們組合為程序包,提高程序的模塊化能力
。
1.2.
5
?
?
運(yùn)行錯(cuò)誤的可處理性
使用
PL/SQL
提供的異常處理(
EXCEPTION
),開(kāi)發(fā)人員可集中處理各種
ORACLE
錯(cuò)誤和
PL/SQL
錯(cuò)誤,或處理系統(tǒng)錯(cuò)誤與自定義錯(cuò)誤,以增強(qiáng)應(yīng)用程序的健壯性。
1.2.
6
?
?
提供大量?jī)?nèi)置程序包
ORACLE
提供了大量的內(nèi)置程序包。通過(guò)這些程序包能夠?qū)崿F(xiàn)
DBS
的一些低層操作、高級(jí)功能,不論對(duì)
DBA
還是應(yīng)用開(kāi)發(fā)人員都具有重要作用。
當(dāng)然還有其它的一些優(yōu)點(diǎn)如:更好的性能、可移植性和兼容性、可維護(hù)性、易用性與快速性等。
1.
3
??PL/SQL?
可用的
SQL
語(yǔ)句
????PL/SQL
是
ORACLE
系統(tǒng)的核心語(yǔ)言,現(xiàn)在
ORACLE
的許多部件都是由
PL/SQL
寫成。在
PL/SQL
中可以使用的
SQL
語(yǔ)句有:
INSERT
,
UPDATE
,
DELETE
,
SELECT?INTO
,
COMMIT
,
ROLLBACK
,
SAVEPOINT
。
提示:在?
PL/SQL
中只能用?
SQL
語(yǔ)句中的?
DML?
部分,不能用?
DDL?
部分,如果要在
PL/SQL
中使用
DDL(
如
CREATE??table??
等
)
的話,只能以動(dòng)態(tài)的方式來(lái)使用。
l?
ORACLE?
的?
PL/SQL?
組件在對(duì)?
PL/SQL?
程序進(jìn)行解釋時(shí),同時(shí)對(duì)在其所使用的表名、列名及數(shù)據(jù)類型進(jìn)行檢查。
l?
PL/SQL?
可以在
SQL*PLUS?
中使用。
l?
PL/SQL?
可以在高級(jí)語(yǔ)言中使用。
l?
PL/SQL
可以在
ORACLE
的開(kāi)發(fā)工具中使用
(
如:
SQL?Developer
或
Procedure?Builder
等
)
。
l?
其它開(kāi)發(fā)工具也可以調(diào)用
PL/SQL
編寫的過(guò)程和函數(shù),如
Power?Builder?
等都可以調(diào)用服務(wù)器端的
PL/SQL
過(guò)程。
1.
4
??運(yùn)行
PL/SQL
程序
????PL/SQL
程序的運(yùn)行是通過(guò)
ORACLE
中的一個(gè)引擎來(lái)進(jìn)行的。這個(gè)引擎可能在
ORACLE
的服務(wù)器端,也可能在?
ORACLE?
應(yīng)用開(kāi)發(fā)的客戶端。引擎執(zhí)行
PL/SQL
中的過(guò)程性語(yǔ)句,然后將
SQL
語(yǔ)句發(fā)送給數(shù)據(jù)庫(kù)服務(wù)器來(lái)執(zhí)行。再將結(jié)果返回給執(zhí)行端。
??2011??
EricHu
原創(chuàng)作品,轉(zhuǎn)貼請(qǐng)注明作者和出處,留此信息。
------------------------------------------------
cnBlobs:
http://www.cnblogs.com/huyong/
CSDN
:
http://blog.csdn.net/chinahuyong
?
作者:
EricHu
(
DB
、
C\S
、
B\S
、
WebService
、
WCF
、
PM
等
)
出處:
http://
www
.cnblogs.com
/huyong/
Q?Q
:
80368704???E-Mail:?80368704@qq.com
本博文歡迎大家瀏覽和轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,在『參考』的文章中,我會(huì)表明參考的文章來(lái)源,尊重他人版權(quán)。若您發(fā)現(xiàn)我侵犯了您的版權(quán),請(qǐng)及時(shí)與我聯(lián)系。
更多文章請(qǐng)看
?
[
置頂
]
索引貼
——
(不斷更新中)
?
[推薦]ORACLE PL/SQL編程詳解之一:PL/SQL 程序設(shè)計(jì)簡(jiǎn)介(千里之行,始于足下)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
