本帖最后由 look4u 于 2010-06-10 14:10:58 编辑

解决方案 »

  1.   

    你insert之后commit了吗?
    没有commit,当然在当前会话里能看到,其它看不到
      

  2.   

    怎么commit???
    我文件里是多条INSERT INTO语句,用分号结束的。
    每条都要写上commit吗???
      

  3.   

    sqlplus里执行完了之后,别忘了commit,否则别的会话里看不到执行结果。
      

  4.   

    不用,结尾commit一次就行了。
      

  5.   

    当然,稳妥的做法是,每隔两三千条commit一次,以减少回滚段开销。
      

  6.   

    晕啊,没用过Oracle,原来是这样!!!!
      

  7.   

    当前会话的DML操作没有提交的话,只有自己可以看到这些已更改的数据。所以你在SQLPLUS里插入了数据以后自己是可以看到,可是在SQL DEVELOPER重新开启一个会话是看不到的。
      

  8.   

    我文件里不包含“commit”,我在执行完文件以后,手工敲入commit可以吗?
      

  9.   


    手工输入命令:
    sql>commit;
      

  10.   

    文件加上commit,或者执行完后,手工commit
      

  11.   

    sqlplus里左上角有个方向朝下的绿色箭头,点一下就提交了,快捷键是F10,数据就永久保存了
      

  12.   

    你用SQL/PLUS登陆和DEVELOPER登陆就好比是二个人同时查询数据,SQL/PLUS执行了INSERT语句,不提交(也就是不用COMMIT命令),登陆在DEVELOPER的人是看不到你插入的数据。
      

  13.   

    我们的项目后来用的是Oracle,感觉sql server是按照微软的软件设计模式,使用时比较顺手,但是在数据库的安全性,性能等方面还是Oracle做得好,毕竟是老牌的数据库厂商,实力雄厚
      

  14.   

    在sqlplus中可以设置
    sql>set autocommit on;但是这个自动提交是每次insert都会提交,
    如果使用脚本批量插入数据,会影响插入速度的。所以还是自己在脚本中每插入一批数据,然后commit一次。
    或者如果undo段足够,最好加载后执行一次commit批量提交
      

  15.   

    呵呵,兄弟,你忘记commit了哈
      

  16.   

    DML语句会有回滚段,所以执行完之后不要忘记commit、rollback