-似懂非懂- 2020-01-09 17:00 采纳率: 33.3%
浏览 525
已采纳

oracle 测试存储过程,执行一次,上次的返回结果便累加上去,如何清除?

CREATE OR REPLACE PROCEDURE PROC_Test(O_CUR OUT SYS_REFCURSOR) IS
STR VARCHAR2(2000);
TB_COUNT INT;
BEGIN
--先判断全局临时表是否存在,没存在则重新建立:

SELECT COUNT(*)
INTO TB_COUNT
FROM USER_TABLES
WHERE TABLE_NAME = UPPER('temp_table');
IF TB_COUNT = 0 THEN
STR := 'CREATE GLOBAL TEMPORARY TABLE temp_table(

Name VARCHAR2(100),

Data VARCHAR2(500),

Category VARCHAR2(200)
) ON COMMIT PRESERVE ROWS';
EXECUTE IMMEDIATE STR;
END IF;
STR := 'INSERT INTO temp_table(Name,Data,Category) VALUES(''省委'',100,null)';
EXECUTE IMMEDIATE STR;
STR := 'INSERT INTO temp_table(Name,Data,Category) VALUES(''市委'',50,null)';
EXECUTE IMMEDIATE STR;
COMMIT;
STR := 'SELECT * FROM temp_table';
OPEN O_CUR FOR STR; -- 给游标变量赋值

END PROC_Test;

然后右键测试,运行,查看游标值2条数据,再运行,查看游标值就变成了4条。等大神解答

  • 写回答

1条回答

  • 微风轻轻 起 2020-01-09 17:19
    关注

    你在insert前加一个truncate table temp_table;

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法