pl/sql +序列
回顧:關於序列有兩個偽列:nextval 返回序列的下乙個值、currval 返回序列的當前值。
通常使用語句 select seq1 nextval from dual; 來查詢序列的值。而結合pl/sql我們可以採用如下方法:
-- 建立乙個序列
create sequence seq1 start
with
1 increment by
1;--開啟開關
set serverout on
--plsql
declare
aa int ;
begin
aa := seq1.nextval;
-- 等同 select seq1.nextval into aa from dual;
dbms_output.put_line('aa的值是'||aa);
end;
/ --表示執行plsql命令 (本個) 單一輸入/表示執行上乙個plsql段
邏輯比較用於比較變數和常量的值,這些表示式稱為布林表示式
布林表示式由關係運算子與變數或常量組成
布林表示式的結果為true、false或null,通常由邏輯運算子and、or和not連線
布林表示式有三種型別:
數字布林型
字元布林型
日期布林型
pl/sql 支援的流程控制結構:
條件控制
if 語句
case 語句
迴圈控制
loop 迴圈
while 迴圈
for 迴圈
順序控制
goto 語句
null 語句
(1)
if 語句根據條件執行一系列語句,有三種形式:if-then、if-then-else 和 if-then-elsif
假設有乙個學生表包含三列 學號 姓名 生日,現在要求判斷指定學生的年齡是否大於25歲。
declare
bage student.birthday%type
begin
select birthday into bage from student where sno=2;
if birthday '19930101' , 'yyyymmdd') then
dbms_output.put_line('該生大於25歲');
else
dbms_output.put_line('該生小於等於25歲');
endif ;
end;
/
(2)
case 語句用於根據單個變數或表示式與多個值進行比較
執行case 語句前,先計算選擇器的值
declare
outgrade varchar2(20);
begin
outgrade :=case &grade
when
'a'then
'優秀'
when
'b'then
'良好'
when
'c'then
'中等'
when
'd'then
'及格'
when
'e'then
'不及格'
else
'沒有此成績'
end;
dbms_output.put_line( outgrade );
end;
/輸入 grade 的值: 'a'
原值 4: outgrade :=case &grade
新值 4: outgrade :=case 'a'
優秀
loop
declare
i number :=0;
begin
i :=1;
loop
dbms_output.put_line(i||'--');
exit
when i>7; -- loop 的停止條件
i :=i+1;
endloop;
dbms_output.put_line('-end-');
end;
/
while
declare
j number :=0;
begin
j :=1;
while
j<=8 --宣告while條件 執行迴圈的條件
loop
dbms_output.put_line(j||'--');
j :=j+1;
end loop;
dbms_output.put_line('-end-');
end;
for
declare
m number :=0;
begin
for m in
1..8
loop
dbms_output.put_line(m||'--');
endloop;
dbms_output.put_line('-end-');
end;
結果:1--2
--3--4
--5--6
--7--8
---end-
exit when j>4 ; 迴圈提前結束條件。
declare
i number :=1;
begin
loop
i := i +1;
exit
when i>8;
continue
when i<4;
dbms_output.put_line(to_char(i));
endloop;
end;
/結果為:45
678
declare
i number :=1;
begin
i :=1;
<>
dbms_output.put_line(to_char(i));
i := i +1;
ifi<=7 then goto aa; end
if; if
i>7 then goto bb; end
if; <> null;
dbms_output.put_line('結束');
end;
oracle基礎 pl sql的游標
result set 結果集 在pl sql中使用游標代表乙個 集合 定義 cursor 游標名 引數名 資料型別 eg cursor c1 is select name from test 定義了乙個游標c1,該內容是所有名稱name的集合 found 是游標取到值為真 notfound 是游標沒...
Oracle中PL SQL中if語句的寫法介紹
複製 如下 if語句 判斷使用者輸入的數字。set serveroutput on 接收鍵盤輸入 accept num prompt 請輸入乙個數字 declare nbfaqqlsysp 將螢幕輸入的數字付給變數 pnum number begin if pnum 0 then dbms outp...
PL SQL中oracle的sql優化
之前看了好多oracle的sql優化問題,發現好多說法不一致,後來看了下時間,有的都是好多年前的了.所以,勸大家在 眾裡尋他千 查東西的時候,一定要多看幾條,而且要注意看日期.當然,我說的也不一定對,僅供參考 1.建立索引和分割槽 2.針對oracle中 count count 列 count 1 ...