標籤: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詳解