溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

dbms_sql使用,用于創(chuàng)建通用動態(tài)sql

發(fā)布時間:2020-07-23 20:06:05 來源:網(wǎng)絡 閱讀:605 作者:guochao198975 欄目:關系型數(shù)據(jù)庫
 
/*
  調(diào)用dbms_sql需要執(zhí)行五個步驟?
  1.打開一個游標?
  2.分析要執(zhí)行的語句?
  3.綁定可能需要的任何輸入變量?
  4.執(zhí)行語句?
  5.關閉游標
*/
DECLARE
  CUR   PLS_INTEGER := DBMS_SQL.OPEN_CURSOR;--為處理打開游標 ,cur 返回系統(tǒng)游標id
  COLS  DBMS_SQL.DESC_TAB;--DBMS_SQL.DESC_TAB:用于接收dbms_sql解析出的數(shù)據(jù)的集合類型
  NCOLS PLS_INTEGER;
BEGIN 
  DBMS_SQL.PARSE(CUR, 'select * from ma_ctl', DBMS_SQL.NATIVE);--分析語句.DBMS_SQL.NATIVE:獲取oracle SQL版本
  --DBMS_OUTPUT.PUT_LINE(DBMS_SQL.NATIVE);  
  /*
  解析sql語句要用的數(shù)據(jù)庫SQL版本,有V6,V7跟native,當不確定連接的ORACLE數(shù)據(jù)庫版本時使用native選項。
  DBMS_SQL.NATIVE:常量名和值的關系。
  Name     Data Type     Value
  v6       INTEGER       0
  native   INTEGER       1
  v7       INTEGER       2
  */
  
  --檢索出列的信息,字段數(shù)量賦值給第二個參數(shù)變量NCOLS,數(shù)據(jù)放到第三個參數(shù)COLS集合變量里
  DBMS_SQL.DESCRIBE_COLUMNS(CUR, NCOLS, COLS);
  
  FOR I IN 1 .. NCOLS LOOP
    DBMS_OUTPUT.PUT_LINE(COLS(I).COL_NAME);--COL_NAME 為COLS的一個屬性,存放字段名
  END LOOP;
  DBMS_SQL.CLOSE_CURSOR(CUR);
END;


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI