Oracle中動態SQL詳解

來源:互聯網
上載者:User

標籤:blog   http   ar   sp   strong   div   on   art   log   

1.靜態SQLSQL與動態SQL   Oracle編譯PL/SQL程式塊分為兩個種:其一為前期聯編(early binding),即SQL語句在程式編譯期間就已經確定,大多數的編譯情況屬於這種類型;另外一種是後期聯編(late binding),即SQL語句只有在運行階段才能建立,例如當查詢條件為使用者輸入時,那麼Oracle的SQL引擎就無法在編譯期對該程式語句進行確定,只能在使用者輸入一定的查詢條件後才能提交給SQL引擎進行處理。通常,靜態SQL採用前一種編譯方式,而動態SQL採用後一種編譯方式。   本文主要就動態SQL的開發進行討論,並在最後給出一些實際開發的技巧。  2 動態 SQL 程式 開發   理解了動態SQL編譯的原理,也就掌握了其基本的開發思想。動態SQL既然是一種”不確定”的SQL,那其執行就有其相應的特點。Oracle中提供了Execute immediate語句來執行動態SQL,文法如下: http://www.cnblogs.com/gaolonglong/archive/2011/05/31/2064790.html Excute immediate 動態SQL語句 using 綁定參數列表 returning into 輸出參數列表;對這一語句作如下說明:   1)動態SQL是指DDL和不確定的DML(即帶參數的DML)   2)綁定參數列表為輸入參數列表,即其類型為in類型,在運行時刻與動態SQL語句中的參數(實際上預留位置,可以理解為函數裡面的形式參數)進行綁定。   3)輸出參數列表為動態SQL語句執行後返回的參數列表。   4)由於動態SQL是在運行時刻進行確定的,所以相對於靜態而言,其更多的會損失一些系統效能來換取其靈活性。    更多文章:Oracle 動態SQL execute immediate寫法 zt-http://space.itpub.net/14740/viewspace-663092Oracle動態SQL的拼裝要領-http://mikixiyou.iteye.com/blog/1720563Oracle動態SQL-http://blog.csdn.net/hncsy403/article/details/7902908 

Oracle中動態SQL詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.