如何让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;

posted @ 2016-04-14 10:28  jackkke  阅读(8325)  评论(0编辑  收藏  举报