为什么使用pl/sql developer 和使用sql*plus得到的结果不同呢
初学Oracle
在pl/sql developer 创建表student。并向其中添加了一条信息通过select * from student语句查询可以得到正确的结果。但是使用sql*plus时,输入同样的语句得到的结果是:缓冲区域中没有可以运行的程序,在isql*plus中得到的结果是:未选定行。
为什么。求解!!!
------解决方案--------------------在pl/sql developer插入数据后,需要commit(提交)
在SQL*Plus中才能看到这种改变,因为二者(PL/SQL Developer和SQL*PLus)处于2个不同的会话中。
------解决方案--------------------当你增删改的时候,其实就是一个事物,在你还没有commit的时候客户端是不向服务器提交的
你可以用PLSQL rollback一下,再select,你会发现也会出现未选定行。
------解决方案--------------------这个跟平台无关。
你若一开始在sqlplus里面插入了一条记录,但因为未提交,再重启一个sqlplus窗口,查询时也会出现这个问题。
所以,你只要commit一下,再查询,就可以了。
------解决方案--------------------这个跟平台无关。
不论是在PL SQL DEVELOPER还是sqlplus,只要未提交,都会出现这个问题。
你插入记录后,输入COMMIT,再在sqlplus里查询看看,就会出现你想要的结果了。
------解决方案--------------------你没有commit提交的话,表示数据并没有真正的插入,只有你当前这个session才能看到的,其它看不到