將表名作為繫結變數的非法操作
在動態sql中使用繫結變數,程式碼如下
v_sql :='insert into remark(code,name) select code,name from :xn';
execute immediate v_sql using v_tablename;
在執行的時候報錯
ora-00903:invalid table name
論壇裡面的一位版主告訴我:
不能將表名、列名作為繫結變數,因為這樣是沒有意義的
我的理解如下:繫結變數的好處是為了共享執行計劃,避免多次的硬解析;但是如果表名或者列名使用了繫結變數,即便oralce認可了,共享了執行計劃,但是對於不同的表或者列,一般最優的執行計劃是不同的;所以共享的執行計劃對於新的表來講是沒有意義的,也是不可取的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28803801/viewspace-773630/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 繫結變數變數
- 繫結變數之繫結變數窺探(Bind Peeking)變數
- Oracle 繫結變數Oracle變數
- 繫結變數的測試變數
- 在oracle的plsql中為cursor使用繫結變數OracleSQL變數
- 繫結變數窺測的演變變數
- oracle10G的表分割槽與繫結變數Oracle變數
- 檢視繫結變數變數
- 繫結變數窺測變數
- PLSQL使用繫結變數SQL變數
- Oracle之繫結變數Oracle變數
- 關於繫結變數變數
- 關於繫結變數的SQL繫結什麼值變數SQL
- 繫結變數的一個例子變數
- 繫結變數的使用範圍變數
- oracle繫結變數的測試Oracle變數
- 查詢繫結變數的值變數
- 關於繫結變數的使用變數
- 【優化】使用繫結變數 OR 不使用繫結變數,這不是問題!優化變數
- ORACLE 繫結變數用法總結Oracle變數
- 使用繫結變數的一點總結!變數
- 【最佳化】使用繫結變數 OR 不使用繫結變數,這不是問題!變數
- Oracle 變數繫結與變數窺視合集Oracle變數
- Oracle 繫結變數窺探Oracle變數
- oracle 繫結變數(bind variable)Oracle變數
- 如何獲取繫結變數變數
- Oracle 繫結變數 詳解Oracle變數
- 關於DSS中的繫結變數變數
- 檢視未繫結變數的sql變數SQL
- 獲取sql繫結變數的值SQL變數
- 從不繫結變數與繫結變數兩種情況討論柱狀圖的作用變數
- 用Oracle表函式解決繫結變數集合問題Oracle函式變數
- MySQL高階特性——繫結變數MySql變數
- SQL Developer中使用繫結變數SQLDeveloper變數
- 繫結變數之基本概念變數
- ORACLE 獲取繫結變數值Oracle變數
- 繫結變數及其優缺點變數
- 繫結變數和BIND PEEKING變數