如何讓plsql查詢的數據可編輯及兩種方法的比較


我們執行一個查詢sql,比如select * from Table t;的時候,

想要去編輯他的結果,點擊工具欄上那個小鎖,會有提示:“這些查詢結果不可更新,請包括ROWID..........”

然后我們來看plsql自帶的一些功能

在某個表名上右擊點擊“查詢數據”出現的sql語句是:select * from Table t;

在某個表名上右擊點擊“修改數據”出現的sql語句是:select t.*, t.rowid from Table t;

 

方法1:

比如我們查詢這樣一條sql:select A,B from AB

如果想讓他編輯的話可以改為以下sql:select t.A,t.B,t.rowid from AB t

查詢后 點擊查詢結果工具欄上的 那個小鎖就可以編輯查詢的數據了,然后點擊對號,再去工具欄提交事務就OK了;

方法2:

比如不想查rowid  可以使用for update 然后在編輯

比如sql語句:select * from Table t

改為: select * from Table t for update

查詢后 點擊查詢結果工具欄上的 那個小鎖,就可以編輯查詢的數據了,然后點擊對號,再去工具欄提交事務就OK了;

 

PS:

仔細看的話,會發現二者是有區別的,前者是當點擊小鎖,修改之后再點擊對號,事務的提交和回滾按鈕才亮。

而后者是執行完for update的sql,事務的提交和回滾按鈕就亮了,這樣做的話就會鎖住記錄,除非你的操作完成后手動提交或者回滾,

否則其他的所有操作都處於等待狀態,不推薦。

 

結論:推薦前者,只有當點擊對號才去鎖記錄。select t.*,rowid from Table t;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM