我有一个程序调用使用临时表的存储过程。我注意到第一次拨打电话时我得到了适量的数据,但是每次调用n都会让行变得越来越大。
我查看了这个问题,并了解到临时表没有被清除,所以我不得不在我的存储过程开始时手动添加一个删除语句。
DELETE FROM sampleSchema.temp; --This was added AFTER i found out it doesnt clear per session
-- put relevant data set into temp table first
INSERT INTO sampleSchema.temp (date_, por, id)
这是我的表结构和ODP.net的连接字符串:
-- Create table
create global temporary table sampleSchema.temp
(
date_ NUMBER(8) not null,
por VARCHAR2(30) not null,
id VARCHAR2(12) not null
)
on commit preserve rows;
ODP.NET的连接字符串:
<connectionStrings>
<add name="EDB" connectionString="USER ID=/;MIN POOL SIZE=1;DATA SOURCE={0};CONNECTION TIMEOUT=16;MAX POOL SIZE=12" />
</connectionStrings>
答案 0 :(得分:4)
选项on commit delete rows
是否可以解决该问题?