ORA-02149與變數賦值
最近在將一heap日誌表調整為partition的日誌表時,發現一個問題,那就是查詢分割槽資料時無法直接按變數來進行查詢。過程如下:
insert into t_actionlog_backup
select * from t_actionlog partition(v_partition_name)
其中v_partition_name是我程式中傳入的分割槽名稱變數,結果無論我怎麼除錯都拋異常“ORA-02149: 指定的分割槽不存在”。
我直接在sql提示符下執行都是沒問題的。見如下的過程:
declare
v_partition_name varchar2(20);
begin
v_partition_name :='p_20071016';
insert into t_actionlog_backup
select * from t_actionlog partition(v_partition_name);
end;
ORA-02149: 指定的分割槽不存在
ORA-06512: 在line 5
SQL>
SQL> insert into t_actionlog_backup
2 select * from t_actionlog partition(p_20071016);
46 rows inserted
SQL>
沒辦法,只能用動態sql來解決。
SQL> declare
2 v_partition_name varchar2(20);
3 begin
4 v_partition_name :='p_20071016';
5 execute immediate 'insert into t_actionlog_backup select * from t_actionlog partition('||v_partition_name||')';
6 end;
7 /
PL/SQL procedure successfully completed
SQL>
開始懷疑oracle資料庫的低能。。。。。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/38542/viewspace-979427/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- shell變數命名與賦值變數賦值
- go語言變數的宣告與賦值Go變數賦值
- 變數的賦值 指標間接賦值變數賦值指標
- php之普通變數賦值、物件賦值、引用賦值的區別PHP變數賦值物件
- 變數的解構賦值變數賦值
- shell 變數賦值問題變數賦值
- 關於變數與‘=’賦值的情況出錯變數賦值
- 物件屬性值賦給變數物件變數
- Kotlin 變數詳解:宣告、賦值與最佳實踐指南Kotlin變數賦值
- 簡單介紹Lua中的變數與賦值方法變數賦值
- c#小灶——常量、變數和賦值C#變數賦值
- AC-DMIS 5.3 V變數賦值變數賦值
- MySQL中變數的定義和變數的賦值使用MySql變數賦值
- vue 變數賦值同時改變的問題Vue變數賦值
- 列表切片賦值給另一個變數賦值變數
- JS中的變數賦值深入理解JS變數賦值
- 自己對Java中if變數賦值的理解Java變數賦值
- ES6:變數的結構賦值變數賦值
- mysql 儲存過程中變數的定義與賦值操作MySql儲存過程變數賦值
- ES6 變數宣告與賦值:值傳遞、淺拷貝與深拷貝詳解變數賦值
- Javascript 解構賦值,將屬性/值從物件/陣列中取出,賦值給其他變數JavaScript賦值物件陣列變數
- ES6 - 變數的解構賦值解析變數賦值
- JavaScript 同時宣告多個變數並賦值JavaScript變數賦值
- 淺談Python變數賦值的三種方法!Python變數賦值
- ECMAScript 6入門 - 變數的解構賦值變數賦值
- ES6之變數的解構賦值變數賦值
- matlab中怎麼給符號變數賦值Matlab符號變數賦值
- 數字索引賦值給多個變數簡單表示式索引賦值變數
- ES6 -- 變數的解構賦值的用途變數賦值
- 深入ES6 三 變數的解構賦值變數賦值
- golang 快速入門 [8.1]-變數型別、宣告賦值、作用域宣告週期與變數記憶體分配Golang變數型別賦值記憶體
- ES6入門之變數的解構賦值變數賦值
- 鎖賦值給其他變數為什麼會死鎖呢?賦值變數
- ES6學習筆記二(變數結構賦值)筆記變數賦值
- vector訪問與賦值賦值
- ES6標準入門之變數的解構賦值變數賦值
- jQuery radio的取值與賦值jQuery賦值
- [20200326]繫結變數抓取與NULL值.txt變數Null
- 列表切片賦值給另一個變數,淺拷貝原理解析賦值變數