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