oracle数据提交不上去,oracle数据库命令窗口执行了语句但是没有提交会有什么影响吗...

Oracle数据库里面有DCL语句(Data Control Language),一共有四个关键字,commit、rollback、grant和revoke。它们执行的时候,你都不会有什么感觉。commit在数据库编程的时候很常用,当你执行DML操作时,数据库并不会立刻修改表中数据,这时你需要commit,数据库中的数据就立刻修改了,如果在没有commit之前,就算你把整个表中数据都删了,如果rollback的话,数据依然能够还原。

听我这么说,你或许感觉commit没什么用,其实不然。当你同时执行两条或两条以上的sql语句时,问题就出现了。举一个例子,你去银行转账,你转的时候银行的数据库会update你银行账户里面的数据,同时对另一个人得账户也进行update操作。这两个程序都必须全部正确执行,才能commit,否则rollback。

如果只是完成一条,要么你郁闷,要么银行郁闷,第一种情况是,你的账户的钱没少,转账人得账户上的钱多了,银行郁闷了。第二种情况你的银行账户的钱少了,他的却没多,你就好郁闷了。Oracle好好学吧!sql不难,plsql努努力也能熬过去,等到优化那,哎!DBA不是那么好当的。

还有就是commit算是显式提交,还有隐式提交,并不是,不commit的话,你的全部努力就都白费了。

不会,问题是一步一步解决的。理出头绪了,物体就解决了。

追答 : oracle中sqlplus下执行sql语句,是不是只要没有commit就没有把实际修改结果存入数据库啊?

Oracle

按理说(书上说的),如果我在一个用户下update了表,但没有commit的时候,用另一个用户登录查看该表应该是没有修改前的。

但是我试了一下,怎么和书说的不一样呢,看见的是改后的。哦,我装的是11g版本。

在一个用户下update了表,但没有commit的时候,

用另一个用户登录查看该表应该是没有修改前的

注意上面写的,用另一个用户登录

估计你是update后,直接又运行select了吧

在同一个窗口,运行的sql是属于同一个事务的,所以虽然没有提交,但是看见了也是改后的数据。

sqlplus连接oracle后执行语句,结果都是2??

SQL> select * from

2

是不是这样子啊 ,是因为你没有输入完整的sql,输入完成后要加;才能执行

例如:

SQL> select * from

2 dual

3 ;

回车就可了

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值