DML對prebuilt table的內容修改時出現ORA-01732
Insert到一張聚合表時出現如下錯誤,顯然是因為MVs建在該表上,所以不能改,透過檢視Metalink的: 463025.1,420777.1
嘗試不刪除的情況下直接修改,但失敗了,這種方法只對View有用,對MV沒用?如下測試:
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view
SQL> create table kl1 as select * from sh.sales where rownum<200; --- kl1 sales
Table created.
SQL> create table kl2 as select * from sh.products where rownum<200; ---kl2 products
Table created.
SQL> create table kl3 as select * from sh.times where rownum<200; ---- kl3 times
Table created.
SQL> create table kl911 as select p.prod_id, p.prod_name, t.time_id, t.week_ending_day,
2 s.channel_id, s.promo_id, s.cust_id, s.amount_sold
3 from kl1 s, kl2 p, kl3 t
4 where s.time_id=t.time_id and s.prod_id=p.prod_id;
Table created.
SQL> create materialized view kl911
2 on prebuilt table without reduced precision
3 using index
4 refresh force on demand
5 with rowid
6 using default local rollback segment
7 enable query rewrite
8 as
9 select p.prod_id, p.prod_name, t.time_id, t.week_ending_day,
10 s.channel_id, s.promo_id, s.cust_id, s.amount_sold
11 from kl1 s, kl2 p, kl3 t
12 where s.time_id=t.time_id and s.prod_id=p.prod_id;
Materialized view created.
SQL> delete kl911 where CUST_ID=2380;
delete kl911 where CUST_ID=2380
*
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view
SQL> conn sh/sh@k01
Connected.
SQL> GRANT MERGE ANY VIEW TO kl;
Grant succeeded.
----修改引數 OPTIMIZER_SECURE_VIEW_MERGING:
SQL> alter system set OPTIMIZER_SECURE_VIEW_MERGING=FALSE scope=memory;
System altered.
SQL> grant all on kl.kl911 to kl;
Grant succeeded.
SQL> grant merge any view to kl;
Grant succeeded.
SQL> conn kl/kl@k01
Connected.
SQL> delete kl911 where CUST_ID=2380;
delete kl911 where CUST_ID=2380
*
ERROR at line 1:
ORA-01732: data manipulation operation not legal on this view
發現即使修改optimizer_secure_view_merging為false, 並且grant merge any view和all on 'some mvs' name',還是不能直接修改pre-built table的內容。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/661919/viewspace-1006720/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mview on prebuilt table用法嘗試ViewUI
- 使用 on prebuilt table 建立物化檢視 (ZT)UI
- 使用 on prebuilt table 建立物化檢視(zt)UI
- 使用prebuilt table 方式遷移資料UI
- 修改Jar內容JAR
- 修改過的專案內容
- jQuery Mobile修改button的內容jQuery
- 修改網頁內容的方法網頁
- oracle 表(table)上最後一次 DML時間、行(row)上最後DML時間Oracle
- git修改歷史內容的方法Git
- Rasa中使用lookup table時針對中文對RegexEntityExtractor進行修改
- 一個對檔案內容定位分析修改的問題,謝謝!
- table列表渲染時,內容要渲染多個值且包含圖示
- python實現修改xml檔案內容詳解PythonXML
- React table 表單裡的內容點選事件React事件
- pdf檔案內容怎麼修改 pdf怎麼免費編輯修改內容
- 使用Antlr4的TokenStreamRewriter修改內容
- jQuery table內容點選標題排序jQuery排序
- Nginx實現對響應體內容的替換Nginx
- dedecms網站模板內容修改?網站
- PHP執行耗時指令碼實時輸出內容PHP指令碼
- 辦公時候收到的pdf檔案內容有誤,我如何修改?
- Python實現對比兩個Excel資料內容並標出不同PythonExcel
- 大數量的DML時對索引處理的技巧索引
- 修改所有xml檔案中的某些內容XML
- 雙擊直接修改內容的js程式碼JS
- docker 修改容器內容後更新映象的流程Docker
- 怎麼修改公司的網站內容呢網站
- JAVA IO流對檔案內容的修改(以BufferedReader&Writer為例)Java
- jQuery table表格同類內容摺疊效果jQuery
- PBootCMS後臺系統內容修改boot
- ftp上直接修改檔案內容FTP
- 基於STM32cubeMX 的 RT-Thread 的預設串列埠輸出修改及內容修改thread串列埠
- JS 實現滑鼠框選(頁面選擇)時返回對應的程式碼或文字內容JS
- 網站模板的logo框架修改?後臺修改網站內容?網站Go框架
- 如何修改table及partitions Table
- python中修改檔案行內容Python
- linux-批次修改檔案內容Linux