![如何在plSql查询数据查出的数据可编辑 如何在plSql查询数据查出的数据可编辑](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
最近开发项目时要经常自己造数据,遇到好多查询出数据时要进行修改。上网查询资料 总结如下:
plSql允许查询数据可以编辑的条件是必须查询出rowid
在某个表上点击query data 出现的sql语句是 :select * from student t
在某个表上点击 edit data 出现的sql语句是:select t.*, t.rowid from student t
说明要编辑必须带有rowid
比如我们查询这样一条语句
select A,B from AB
让他可以编辑的办法
select t.A,t.B,t.rowid from AB t
查询后 点击查询结果工具栏上的 那个锁的标志
就可以编辑下面的数据了,记得编辑之后不要忘记提交。
方法2:
比如不想查rowid 可以使用for update 然后在编辑
比如sql语句:select * from student t
添加 for update: select * from student t for update
然后在点击的标志就可以编辑了。
但是二者还是有区别的:
select ... for update不如select a.*,a.rowid from t,因为前者可能会造成锁表,后者不会锁表。
FOR UPDATE会在你用的时候在表上加一个锁,别人就没法对表进行操作了,有时候你打开多个窗口,
而且多个窗口里都用了FOR UPDATE,就会出现一些让你莫名其妙的错误。比如:报错内容:ORA-01406:fetched column value was truncated
因为用到数据库的人不止我们一个人。