刚学着使用Oracle的sqlplus 还有isqlplus,不管在哪个工具中用start打开一个sql脚本文件,创建了表,然后进行表内容插入。只要还没关掉数据库,插入的东西就能查询到,而一关数据库,用select语句查询表内容,总是只剩下空表?这是怎么回事呢?这地方跟SQL SERVER2000就是不一样

解决方案 »

  1.   

    oracle dml语句需要显式commit。ddl语句隐含commit
      

  2.   

    insert 之后要执行 commit
      

  3.   

    dml语句 记得commit或者
    set autocommit on
      

  4.   

    修改之后要commit ,是跟SqlServer不一样。我觉得这反倒是sqlplus的好处。  要不然误操作又不能回退。
    好歹多了一个 确认的流程
      

  5.   


    insert 后需要执行commit命令。SQL>commit;commit之后,redo log buffer开始写redo log file ,并且记录此时的scn,当redo log file 写完了之后,表示这次事务提交操作已经确认被数据库记录了。只有当redo log file 写成功了,才会给用户 Commit completed 的成功字样。
    RedoLog Checkpoint 和 SCN关系
    http://blog.csdn.net/tianlesoftware/archive/2010/01/25/5251916.aspx