• 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条。等大神解答


  • vicky    2020-01-10 15:11:49
  • 阅读 703    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信