当前位置:首页 > 数据库 > Oracle管理

存储过程中,用游标回到临时表里数据,为何是空的

优良自学吧提供存储过程中,用游标回到临时表里数据,为何是空的,存储过程中,用游标返回临时表里数据,为何是空的?请教各位: 我在一个存储过程中,先是往一个 事务级临时表里,写了一些数据,然后用游标返回, 但是怎么都没有数据。 创建临时表用的是: CREATE global te

存储过程中,用游标返回临时表里数据,为何是空的?
请教各位:
我在一个存储过程中,先是往一个 事务级临时表里,写了一些数据,然后用游标返回,
但是怎么都没有数据。
创建临时表用的是:
CREATE global temporary table TEMP_A( BUSDATE VARCHAR2(20), FX VARCHAR2(10)) on commit Preserve   rows 
这样的语句,是在存储过程之外,提前建立好的

存储过程中,给临时表赋值用的是
strSQL:= ' INSERT INTO TEMP_A  SELECT BUSDATE  , FX from table_A ';
 execute IMMEDIATE (strSQL);
 commit;

然后返回游标用的是
OPEN p_rc FOR  SELECT  * FROM  TEMP_A 
这样的语句。
我在PL/SQL中调试跟踪,取得strSQL的值,执行,是有结果的。但是到返回游标这里,总显示游标里没有数据。
为啥呢?
请教各位高手
------解决思路----------------------
引用:
请教各位高手


临时表:像普通表一样,有结构,但是对数据的管理上不一样,临时表存储事务或会话的中间结果集,临时表中保存的数据只对当前 会话可见,所有会话都看不到其他会话的数据,即使其他会话提交了,也看不到。临时表不存在并发行为,因为他们对于当前会话都是独立的。
------解决思路----------------------
LZ 能把过程的语句贴完整吗,更容易分析。
------解决思路----------------------
你的游标是在哪里写的。
和过程执行是同一个session吗?
如果不是,那就看不到数据了。
你可以在同一个session下测试。

(本文来自互联网,不代表搜站(http://www.ylzx8.cn/)的观点和立场)
本站所有内容来自互联网,若本站收录的信息无意侵犯了贵司版权,请给我们来信(ylzx8cn@163.com),我们会及时处理和回复,谢谢