添加数据和查询数据的疑惑。。

wf2091139 2007-12-31 02:36:16
初学初用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条。

不知道这是为什么,但可以确定的是数据确实已经插入。
(不知道上面有没有把问题描述清楚),希望有经验的朋友给个答复。
...全文
90 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bai_jiong 2007-12-31
  • 打赏
  • 举报
回复
是这样的:
INSERT INTO TABLE(FIELD) VLAUES('VALUES');
COMMIT;
这样,就提交了你刚刚INSERT 的那条语句.

如果你不想提交到数据库,也可将COMMIT写成ROLLBACK;
wf2091139 2007-12-31
  • 打赏
  • 举报
回复
好像不行?
我这样写:
SQL> set autocommit on
SQL> insert into table(field)values('valses');
这样可以。
但是直接用commit还是不会。

- -! 能不能写一个给我看看?

stou 2007-12-31
  • 打赏
  • 举报
回复
就在命令那里写
wf2091139 2007-12-31
  • 打赏
  • 举报
回复
在什么地方或如何写这个 COMMIT ?能不能就用上面的例子在命令提示符界面如何写 ?
wf2091139 2007-12-31
  • 打赏
  • 举报
回复
额。 需要Commit?能不能给说清楚一下,具体怎么写的?
bai_jiong 2007-12-31
  • 打赏
  • 举报
回复
原因是:你在INSERT一条记录后,没有执行COMMIT语句.

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

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧