Oracle中DBMS_SQL封裝過程

來源:互聯網
上載者:User

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;

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.