Oracle的PL SQL程式設計

2021-07-14 16:56:55 字數 4770 閱讀 9356

pl/sql把sql的資料操作功能同過程語言的資料處理功能結合起來。

--宣告作用

declare

--變數、游標、使用者自定義型別、異常

variables,cursors,user_defined,exceptione

--程式開始

begin

-sql

statements-pl

/sql

statements

--異常處理

exception

actions  

toperform  

when

errors

occur

--程式結束標誌

end;

1.     構成pl/sql的基本單元:過程,函式,其他模組

2.     變數宣告和異常處理是可選項,程式過程是必須的

字符集包括:

1、所有大小寫字母

2、0~9的數字

3、(){} +、-、*、%等一些特殊字元

4、空格符、製表符、回車符

單行注釋: --

宣告作用

declare

--變數、游標、使用者自定義型別、異常

variables,cursors,user_defined,exceptione

--程式開始

begin

-sql

statements-pl

/sql

statements

--異常處理

exception

actions  

toperform  

when

errors

occur

--程式結束標誌

end;

多行注釋:不允許巢狀使用 /*

declare

variables,cursors,user_defined,exceptione

begin

-sql   statements

-pl/sql    statements

exception

actions   to  perform   when  errors   occur

end;

*/常用資料型別:

數字型別:

number

、pls_integer

、binary_integer

字元型別:

char

、varchar2

、long

、nchar2

、nvarchar2

日期型別:

date

、timestamp

、interval

布林型別:

boolean

lob型別:

blob

、long

、raw、

型別轉換

to_char():把number和date型別轉換為varchar2()型別

to_date():把char型別轉換為date型別

to_number():把char型別轉換為number型別

自動型別轉換:字元和數字,字元和日期

自動型別轉換

:max

結果是number

型別,這裡就轉換為

varchar2

型別declare

v_customer_id 

varchar2(10

);begin

select

max(cust_id) 

into

v_customer_id

from

customers 

where

cust_first_name=

'anne'

;end

;手動型別轉換

declare

v_customer_id 

varchar2(10

);begin

select

to_char(

max(cust_id))

into

v_customer_id

from

customers 

where

cust_first_name=

'anne'

;end

;變數就是程式讀取和賦值的儲存單元。

v_customer_id 

varchar2(10

);v_name 

varchar2(20

);v_date 

date

;常量就是在前面加上constant修飾,並且賦值即可。

limit_connect  

constant

numb:=

50000

;算術運算子

+-正負

+加號-減號

*乘號/出號

**冪

關係運算子

<>不等於

!=不等於

^=不等於

>大於

《小於=等於

其他運算子

notand or

/**/ --

:=賦值

『字元界 ;

if_then_else語句

declare

v_number   sales.prod_id%

type

;v_comment  

varchar2(35

);begin/*對

prod_id

判斷*/

select

max(prod_id)

into

v_number

from

sales;

ifv_number<

500then

v_comment:=

'too  small'

;elsif

v_number<

1000

then

v_comment:=

'litter   bigger'

;else

v_comment:=

'that  enough'

;endif;

end;

case語句

declare

v_first_name   customer.customer   first_name%

type

;v_result  

varchar2(20

)begin

--從資料庫中取出要判斷的值

select

customer_first_name

into

v_first_name

from

customer

where

c_id=

100;

--判斷

v_first_name

的值,獲得結果

case

v_first_name

when

'anne'

then

v_result:=

'is  anne'

;when

'fire'

then

v_result:=

'is  fire'

;else

v_result:=

'nothing'

;end

case

;end;

for_loop語句

declare

v_counter  

binary_integer:=1

;begin

forv_counter  in1

..19  

loop

--滿足條件要執行的

sql語句

insert

into

number_table(

num)  

values

(v_counter);

endloop

;end;

while_loop

declare

v_counter  

binary_integer:=1

;begin

while

v_counter<

20loop

--滿足條件要執行的

sql語句

insert

into

number_table(

num)  

values

(v_counter);

endloop

;end

;goto順序控制

goto  lable;label是指<<>>括起來的標記

declare

v_counter  

binary_integer:=1

;loop

insert

into

number_table(

num)  

values

(v_counter);

v_counter:=v_counter+1;

--v_counter:=20

的時退出去

ifv_counter=

20then

goto

loop_end;

endif

;end

loop

;<>

end;

Oracle的pl sql程式設計

1pl sql程式設計 1.1建立過程過程 create or replace procedure 引數名 in out 引數型別 沒有長度 名字 is begin pl sql程式設計語句 end 名字 ps 最有一定要加分號和斜槓 1.2呼叫 exec 過程名 引數 call 過程名 引數名 1...

oracle中pl sql程式設計 三

oracle中pl sql程式設計 三 pl sql的控制結構 提供了三種條件的分支語句 a if then b if then else c if then elsif 注意這裡不是elseif else 簡單的條件判斷 if then 案例 編寫乙個過程,可以輸入乙個雇員名,如果該雇員的工資 低...

oracle筆記(九)PL SQL程式設計

pl sql 是oracle 的專用語言,它對標準的sql 語言的擴充套件.sql 語句可以巢狀在pl sql 語言中,並結合處理語句。pl sql 程式結構 使用了程式塊的結構組織的 最簡單的程式塊是一種被稱為 匿名塊 的程式塊,匿名塊是指不會被oracle 儲存並且不能夠重用程式塊。pl sql...