我用VB连接oracle数据库时,出现如下情况: CREATE GLOBAL TEMPORARY TABLE USERYHM
(
ID NUMBER(10) NOT NULL,
NAME VARCHAR2(50)
)
ON COMMIT PRESERVE ROWS; 用vb代码往临时表里插入数据时insert into useryhm (id,name) values ('111','qq1') 时,为什么表useryhm里没有这个记录呢?同时在VB里select * from useryhm时也没有记录!!! 我换成其它非临时表时,能插入能查询数据,
但是我用命令直接在SQL/pl里运行,也能插入能查询,为什么呢?把表名换成大写的也不行,我晕了
(
ID NUMBER(10) NOT NULL,
NAME VARCHAR2(50)
)
ON COMMIT PRESERVE ROWS; 用vb代码往临时表里插入数据时insert into useryhm (id,name) values ('111','qq1') 时,为什么表useryhm里没有这个记录呢?同时在VB里select * from useryhm时也没有记录!!! 我换成其它非临时表时,能插入能查询数据,
但是我用命令直接在SQL/pl里运行,也能插入能查询,为什么呢?把表名换成大写的也不行,我晕了
http://school.itzcn.com/special-spid-35.html
上面讲解的比较详细,
希望对楼主有所帮助。
on commit reserve rows:提交保存数据,这个表里面的数据当出现commit动作的时候自动保存,当退出本session的时候(直观点说就是退出sqlplus 或者 plsql)但是要注意,上面两个说法都是指的一个session,无论你设置那种方法,在另外的session中数据都是不可见的。
如:开了一个a窗口,向临时表里面插入数据,这个时候除了a窗口之外的所有窗口都不会看到临时表里的数据无论你采用什么方式建临时表。说的有点凌乱,你自己和你自己的情况对下号,应该就能找到问题的所在。