DBMS_SQL封裝過程中主要函數
1、OPEN_CURSOR:返回新遊標的ID值
2、PARSE:解析要執行的語句
3、BIND_VARIABLE:將給定的數量與特定的變數相串連
4、DEFINE_COLOUMN:定義欄位變數,其值對應於指定遊標中某個位置元素的值
(僅用於SELECT語句)
5、EXECUTE:執行指定的遊標
6、EXECUTE_AND_FETCH:執行指定的遊標並取記錄
7、FETCH_ROWS:從指定的遊標中取出記錄
8、COLUMN_VALUE:返回遊標中指定位置的元素
9、IS_OPEN:當指定的遊標狀態為OPEN時返回真值
10、CLOSE_CURSOR:關閉指定的遊標並釋放記憶體
11、LAST_ERROR_POSITION:返回出錯SQL語句的位元組位移量
12、LAST_ROW_ID:返回最後一條記錄的ROWID
13、LAST_SQL_FUNCTION_CODE:返回語句的SQL FUNCTION CODE
例1:
create or replace procedure LNQ (v_cardno varchar2, v_wdate datetime,v_wtime datetime)
is
vc1 NUMBER;
vi1 INTEGER;
vstr1 VARCHAR2(300);
BEGIN
-定義SQL命令
vstr1:='delete from emp where cardno=:cardno and wdate=:wdate and wtime=:wtime';
建立一個遊標
vc1:=DBMS_SQL.OPEN_CURSOR;
向伺服器發出一個語句並檢查這個語句的文法和語義錯誤
DBMS_SQL.PARSE(vc1,vstr1,DBMS_SQL.V7);
assign parameter value
DBMS_SQL.BIND_VARIABLE(vc1,':cardno',v_cardno);
DBMS_SQL.BIND_VARIABLE(vc1,':wdate',v_wdate);
DBMS_SQL.BIND_VARIABLE(vc1,':wtime',v_wtime);
執行此語句,因為執行的是查詢,所以必須跟著Fetch_Rows函數並為單個行檢索資料
vi1:=DBMS_SQL.EXECUTE(vc1);
關掉遊標
DBMS_SQL.CLOSE_CURSOR(vc1);
END;