初学初用Oracle,遇到个这样的问题。
比如,我在命令提示符界面操作时:
....
SQL> conn arcuse/12345@arc_192.168.1.1 as sysdba
然后:
SQL> select * from arcuse.arc_user显示有5条记录(此时在 iSQL*PLUS 和 Enterprise Manager 里面也是5条记录)。
然后我插入一条SQL> insert into arcuse.arc_user(username,passwd,name) values('abc','123','wf')
提示已创建一条,然后再查询:SQL> select * from arcuse.arc_user
此时有6条记录。到这都没有错,可是我再登陆iSQL*PLUS (http://192.168.1.1:5560/isqlplus)
登陆名,密码   arcuse    12345 登陆进取后查询上面这个表:
select * from arcuse.arc_user
但是此时显示的仍然是5条数据,没有我新加的。
并且用同样用户arcuse 登陆 Enterprise Manager察看该表数据显示的也是5条。不知道这是为什么,但可以确定的是数据确实已经插入。
(不知道上面有没有把问题描述清楚),希望有经验的朋友给个答复。

解决方案 »

  1.   

    原因是:你在INSERT一条记录后,没有执行COMMIT语句.在这种情况下,INSERT(UPDATE)的记录,都只会在当前会话中有效,而是当前用户.所以,你在ISQL*PLUS中,看不到你刚刚INSERT的那一条记录.
      

  2.   

    额。 需要Commit?能不能给说清楚一下,具体怎么写的?
      

  3.   

    在什么地方或如何写这个 COMMIT ?能不能就用上面的例子在命令提示符界面如何写 ?
      

  4.   

    好像不行?
    我这样写:
    SQL> set autocommit on
    SQL> insert into table(field)values('valses');
    这样可以。
    但是直接用commit还是不会。- -! 能不能写一个给我看看?
      

  5.   

    是这样的:
    INSERT INTO TABLE(FIELD) VLAUES('VALUES');
    COMMIT;
    这样,就提交了你刚刚INSERT 的那条语句.如果你不想提交到数据库,也可将COMMIT写成ROLLBACK;