<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        Oracle過程中執行動態SQL或DDL語句

        來源:懂視網 責編:小采 時間:2020-11-09 12:26:13
        文檔

        Oracle過程中執行動態SQL或DDL語句

        Oracle過程中執行動態SQL或DDL語句:如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行, sql_str 是一個拼湊的 SQL 語句, 如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行,
        推薦度:
        導讀Oracle過程中執行動態SQL或DDL語句:如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行, sql_str 是一個拼湊的 SQL 語句, 如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行,

        如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行, sql_str 是一個拼湊的 SQL 語句,

        如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行, sql_str 是一個拼湊的 SQL 語句,但這個動態語句中帶參數,或 Select 的結果要 into 到變量中時就要稍加留心一下了。而在 8i 以前的版本(誰還用這么古老的玩藝,總有些不得已的地方,老系統考慮升級成本遺留下來的,應用軟件所伴隨著的等),都沒法用 execute immediate,,就得使用 DBMS_SQL 包來實現了

        何謂動態 SQL 和 DDL 語句呢?通常在過程中要操作的表名、字段名都必須是明確的,否則編譯過程時就要報錯,但如果這兩者也用變量名來表示就是動態的。DDL 就是數據庫對象定義的操作,如 CREATE TABLE/VIEW/INDEX/SYN/CLUSTER……,及這些對象的刪除、修改操作等等。

        比如在 Oracle 中有執行下面過程塊的意圖時,就要使用到 execute immediate 或是 DBMS_SQL 包了。當然下面的語句塊是通不過的。

        declare

        col_name varchar2(30) := 'name'; --假定表user存在name字段

        col_val varchar2(30);

        begin

        select col_name into col_val --按照慣常思維,可能就會這么寫

        from user where age between 18 and 25; --編譯時會提示列名不存在的

        drop table t2; --不能直接執行 DDL 語句,后面查詢 t2 編譯器就無能為力了

        end;

        現在我們提出對上面問題的解,針對第一個 Select 語句來說明,并假設查詢中還帶有參數。塊中的 DDL 也是類似的解法。例子因力圖涵蓋更多內容,所以稍顯復雜,如果不需要 into (如 update/delete 語句),或者不帶參數,會簡單多了,應不難簡化。有兩種處理方法,以 8i 為分水嶺。

        1. Oracle 8i 及以上版本的過程中處理動態 SQL 語句的辦法

        declare

        v_col_name varchar2(30) := 'name'; --字段名 name 用變量來表示

        v_user_name varchar2(30); --用戶名稱

        v_user_age integer; --用戶年齡

        v_sql_str varchar2(500); --動態 SQL 語句

        begin

        v_sql_str := 'select '||v_col_name||',age from users --字段名后面不能緊隨 into 到變量了

        where age between :start_age and :end_age and rownum=1'; --兩個命名參數

        --用 execute immediate 動態執行 SQL 語句

        --注意其后的 into 字段值到變量的寫法,還有 using 來代入參數

        execute immediate v_sql_str into v_user_name,v_user_age using 18,25;

        dbms_output.put_line('第一個符合條件的用戶:'||v_user_name||',年齡:'||v_user_age);

        end;

        除此之外,在 Oracle 8i 及以上版本中,還能用 DBMS_UTILITY.EXEC_DDL_STATEMENT(ddl_sql_str) 執行 DDL 語句。

        linux

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Oracle過程中執行動態SQL或DDL語句

        Oracle過程中執行動態SQL或DDL語句:如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行, sql_str 是一個拼湊的 SQL 語句, 如果你用的是 Oracle 8i 及以上的版本,那簡單,在過程中用 execute immediate sql_str 就行,
        推薦度:
        標簽: sql 語句 oracle
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 日本人护士免费xxxx视频| 日本永久免费a∨在线视频 | 亚洲视频在线免费观看| 国产亚洲精品看片在线观看| 亚洲色精品VR一区区三区| 成人爽A毛片免费看| 亚洲欧美成人av在线观看| 国产青草视频在线观看免费影院| 国产一区视频在线免费观看| 亚洲欧美黑人猛交群| 午夜免费福利在线| 国产精品成人亚洲| 亚洲国产午夜福利在线播放| a在线视频免费观看在线视频三区 a毛片成人免费全部播放 | 大学生美女毛片免费视频| 亚洲Av无码国产一区二区| 在线a亚洲v天堂网2018| 老司机精品免费视频| 亚洲产国偷V产偷V自拍色戒| 美丽姑娘免费观看在线观看中文版| 国产真人无遮挡作爱免费视频| 久久国产亚洲电影天堂| 免费A级毛片av无码| 亚洲另类春色国产精品| 国产成人免费全部网站| 黄色网页在线免费观看| 亚洲男人第一av网站| 成年美女黄网站18禁免费| 日本高清免费中文在线看| 久久九九亚洲精品| 亚洲国产精品免费观看| 免费看一级毛片在线观看精品视频| 青苹果乐园免费高清在线| 老湿机一区午夜精品免费福利| 午夜性色一区二区三区免费不卡视频| 国产亚洲精品线观看动态图| 91大神免费观看| 国产精品无码亚洲一区二区三区| 精品久久久久成人码免费动漫| 亚洲va中文字幕无码久久不卡| 一个人看的www在线免费视频|