這裡,只是結合到目前的經驗來進行綜述,歡迎批評指正。
plsql程式的執行過程很玄妙,差不多覆蓋掉了高階語言執行順序對我的認知;
總的來說,plsql執行順序是同高階語言執行順序不同,先說高階語言,是先從變數定義宣告、輸入引數、執行運算操作、輸出;而
plsql
是從入口函式開始,根據程式順序執行。
對比來看,高階語言需要先定義宣告變數,這是因為程式要開闢一塊儲存空間,為了儲存輸入的變數、執行操作時的中間變數和將要輸出的變數,因此高階語言程式是從宣告開始的。
這一部分就凸顯出了資料庫程式語言的極大不同,首先說一下資料庫底層的東西。資料庫最底層的是表,基於表建立的檢視也相當於表的一種擴充套件,在往上層來看則是表空間(在定義表時要給表分配的儲存空間),在往上看是資料檔案,這相當於物理層面的。也就是說,程式不用提前宣告儲存空間,而是直接執行對空間的操作。
因此,玄妙的程式過程是這樣的,進入main函式(這裡假設
main
函式是入口函式),有輸出就輸出,但不會對變數的宣告和游標等進行處理,進入方法或者過程,當執行
select * from gl_balance 時,才會呼叫到這個表的儲存空間進行資料的讀取,或者當執行:
fori
inc
loop
(c是乙個游標
)才開始進入宣告游標的地方,獲取值,進行處理。可以想象,程式的執行是當執行到表時,才進入表空間裡,fetch裡面的資料,當執行到檢視時,才獲取檢視裡的值,其實也是獲取表裡的值和按一定邏輯取到的值……玄幻。
PLSQL程式設計
create table emomy1 emon varchar2 100 time1 date drop table emomy1 select from emomy1 begin dbms output.put line hello,world end 定義變數 declare name con...
PL SQL程式設計
1.具有程式語言的特點,他能把一組sql語句放到乙個模組中,使去更具有模組的程式的特點 2.採用過程性語言控制程式的結構,也就是說,在pl sql中增強邏輯結構,如迴圈,判斷等程式結構 3.pl sql可以對程式中的錯誤進行自動處理,使程式能夠在遇到錯誤時不會中斷,及他的處理異常機制 4.具有更好的...
PL SQL 程式設計
pl sql 程式結構 declare 宣告部分 宣告變數 型別 游標以及布局的儲存過程及函式 begin 執行部分 過程及sql語句,程式的主要部分,是必須的 end eg 基表為course declare v cno varchar 20 001 begin select from cours...