1. 河豚號 > 生活百科 >

plsql注釋快捷鍵設(shè)置(plsql設(shè)置快捷語句)

一、什么是PL/SQL,它包含什么內(nèi)容

PL/SQL是過程語言與結(jié)構(gòu)化產(chǎn)村語言(SQL)結(jié)合而成的編程語言

1.包含:

①變量和類型

②控制語句

③子程序和函數(shù)

④對象類型和方法

二、PL/SQL體系結(jié)構(gòu)及執(zhí)行流程

1.將PL/SQL塊送給oracle服務(wù)器

2.oracle服務(wù)器啟動PL/SQL引擎

3.oracle過程語句 發(fā)送給 過程語句執(zhí)行器

4.執(zhí)行過程語句

5.引擎將 SQL語句 發(fā)送給 SQL語句執(zhí)行器

6.執(zhí)行SQL語句

7.將結(jié)果發(fā)送給客戶

三、關(guān)于PL/SQL塊

PL/SQL塊是構(gòu)成PL/SQL程序的基本單元,將邏輯上相關(guān)的聲明和語句合在一起

1.PL/SQL分為三個部分:

①聲明部分

②課執(zhí)行部分

③異常處理部分

語法:

[declare

declarations]

begin

executable statements

[exception

handlers]

end;

例如:設(shè)置變量v_name,利用程序包輸出同學(xué)們上午好

(||為連接符,等價于字符串中的+,:=為賦值,dbms_output,put_line為輸出語句)

declare

v_name varchar2(10):=’同學(xué)們’;

begin

dbms_output.put_line(v_name || ‘上午好’);

end;

四、變量和常量的聲明

語法:variable_name [cinstant] date_type[(size)] [:=init_value];

示例:constant 常量 date_type 數(shù)值類型

declare

v_name varchar2(20) :=’施敬超’; —姓名

v_sal number default 10000; —月收入

c_rate constant number(4,3):=0.037; —年利率

v_income number(10,3); —一年利息收入

begin

—執(zhí)行部分

end;

五、常用數(shù)據(jù)類型

1.標(biāo)量類型:

數(shù)字、字符、布爾值、日期時間

2.屬性類型:

%type、%rowtype

%type 以表中的字段類型作為數(shù)據(jù)類型

v_列名 表名.列名%type

%rowtype用于接收單條記錄,每列類型以行內(nèi)數(shù)據(jù)為準(zhǔn),常用與循環(huán)遍歷時使用

v_表名_record 表名%rowtype;

六、賦值語句

teacher.tname%type 以teacher表中的tname字段類型作為數(shù)據(jù)類型

select tname,sal into v_name,v_sal

吧查詢到的tname和sal分別賦值給變量v_name,v_sal

示例:

declare

v_name teacher.tname%type;

v_sal teacher.sal%type;

begin

select tname,sal into v_name,v_sal from teacher where tno=1004;

dbms_output.putline(v_name || ‘的月工資為:’ || v_sal);

end;

七、控制結(jié)構(gòu)

1.條件控制:if語句、case語句

①if語法:

if<布爾表達式> then

PL/SQL和SQL語句

elsif <布爾表達式> then

其他語句

else

其他語句

end if;

②case語法:

case 條件表達式

when 結(jié)構(gòu)1 then

語句段1

when 結(jié)果2 then

語句段2

else

語句段

end case;

2.循環(huán)控制:loop循環(huán)、while循環(huán)、for循環(huán)

①loop語法:

lopp

要執(zhí)行的語句

exit when<條件語句>

end loop;

②while語法:

while <布爾表達式> loop

要執(zhí)行的語句

end loop;

③for語法:

for 循環(huán)計數(shù)器 in [reverse] 下限上限 loop

要執(zhí)行的語句

end loop;

3.順序控制:null語句、goto語句

八、什么時游標(biāo)

游標(biāo)時系統(tǒng)為用戶開設(shè)的一個數(shù)據(jù)緩沖區(qū),用于存放SQL 語句的執(zhí)行結(jié)果(即臨時結(jié)果集resultset)

每個游標(biāo)區(qū)都有一個名字供用戶可以通過游標(biāo)逐一獲取記錄

九、為什么使用游標(biāo)

由于SQL語句的結(jié)果集為數(shù)據(jù)模型,而程序設(shè)計語言為對象模型

例如JAVA只能接收單個變量或一條記錄,而無法接收結(jié)果集,所以采用變量》記錄》對象的形式轉(zhuǎn)換傳遞

步驟:

執(zhí)行SQL語句》得到結(jié)果集放到游標(biāo)》循環(huán)遍歷游標(biāo)區(qū)》記錄一條條傳給JAVA對象

十、游標(biāo)的分類

游標(biāo)類型分為:靜態(tài)游標(biāo)和動態(tài)游標(biāo)

1.靜態(tài)游標(biāo):

在編譯時知道其select語句的游標(biāo)

2.動態(tài)游標(biāo):

運行的時候動態(tài)決定執(zhí)行何種查詢

十一、游標(biāo)的使用

1.聲明游標(biāo):

語法:CURSOR cursor_name is query_sql;

2.打開游標(biāo):

語法:OPEN cursor_name;

3.提取游標(biāo):

使用fetcm語句實現(xiàn)對游標(biāo)內(nèi)容的讀取

variable_list必須與從游標(biāo)提取的結(jié)果集類型相同

fetcm cursor_name into variable_list;

3.關(guān)閉游標(biāo):

使用close語句關(guān)閉一個游標(biāo),關(guān)閉游標(biāo)后,所有資源都將被釋放

close cursor_name;

十二、游標(biāo)屬性

%found

用于檢測游標(biāo)是否成功,通常在fetcm語句之前使用,當(dāng)游標(biāo)按照查詢出一條記錄時,返回true

%isopen

判斷是否處于打開狀態(tài),試圖打開一個已經(jīng)打開或已經(jīng)關(guān)閉的游標(biāo)麻將會出出現(xiàn)錯誤

%notfound

與%found的作用相反,當(dāng)按照條件無法查詢帶記錄時,返回true

%rowcount

循環(huán)執(zhí)行游標(biāo)讀取數(shù)據(jù)時,返回檢索出的記錄數(shù)據(jù)的行數(shù)

十三、動態(tài)和靜態(tài)SQL

1.什么時靜態(tài)SQL:

需要在編寫PL/SQL程序時就確定的SQL語句

2.什么是動態(tài)SQL:

在PL/SQL程序執(zhí)行時生成的SQL語句

DDL 語句命令和會話控制語句不能在PL/SQL中直接使用,但是可以通過動態(tài)SQL來執(zhí)行

編譯程序?qū)討B(tài)SQL不做處理,而是在程序運行時動態(tài)構(gòu)造語句,對語句進行語法分析并執(zhí)行

十四、動態(tài)SQL實現(xiàn)

方法1:本地動態(tài)SQL

execute immediate 語句執(zhí)行

語法:

execute immediate dynamic_sql_string

[into define_variable_list]

[using bind_argument_list];

dynamic_sql_string 是動態(tài)SQL語句字符串

into 子句用于接收select語句選擇的記錄值

using 子句用于綁定輸入?yún)?shù)變量

通過游標(biāo)實現(xiàn)

語法:

TYPE type_cursor id ref CURSOR

[RETURN return_type];

cursor_name type_cursor;

OPEN cursor_name FOR dynamic_sql_string

[USING bind_argument_list];

dynamic_sql_string 是動態(tài)SQL語句字符串

USING 子句用于綁定輸入?yún)?shù)變量

方法2:DBMS_SQL程序包

通過DBMS_SQL程序包實現(xiàn)步驟

①將要執(zhí)行的SQL語句或一個語句塊放到一個字符串變量中

②打開游標(biāo)

③使用DBMS_SQL包的parse過程來分析該字符串

④使用DBMS_SQL包的bind_variable過程來綁定變量

⑤使用DBMS_SQL包的execute函數(shù)來執(zhí)行語句

⑥關(guān)閉游標(biāo)

十五、什么是PL/SQL異常處理

在運行程序時出現(xiàn)的錯誤叫做異常

發(fā)生異常后,語句將停止執(zhí)行,控制權(quán)轉(zhuǎn)移到PL/SQL塊的異常處理部分

其中,異常分類包括:

①預(yù)定義異常

語法:

BEGIN

sequence_of_statements;

EXCEPTION

WHEN THEN

sequence_of_statements;

WHEN OTHERS THEN

sequence_of_statements;

END;

示例:

BEGIN

update teacher t set t.comm=100/0;

EXCEPTION

WHEN ZERO_DIVIDE THEN dbms_output.put_line(‘除數(shù)為0’);

WHEN OTHERS THEN dbms_output.put_line(‘其他異常’);

END;

用戶定義異常

聲明異常:

BEGIN

RAISE e_exceptionName;

處理異常:

EXCEPTION

WHEN THEN

sequence_of_statements;

WHEN OTHERS THEN

sequence_of_statements;

本文由網(wǎng)上采集發(fā)布,不代表我們立場,轉(zhuǎn)載聯(lián)系作者并注明出處:http://m.zltfw.cn/shbk/37207.html

聯(lián)系我們

在線咨詢:點擊這里給我發(fā)消息

微信號:15705946153

工作日:9:30-18:30,節(jié)假日休息