存储过程或者函数里建临时表,在存储过程中这个临时表不能使用,存储过程结束了,临时表才真正建起来
麻烦贴下复现过程,以及对应的ob版本
CREATE OR REPLACE FUNCTION sumcreateTempTabel(in_accperiod varchar2)
RETURN VARCHAR2 IS
sp_errstr varchar2(500);
BEGIN
– 创建临时表
EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE T_11(
TREATYID VARCHAR2(10) NOT NULL ,
COMCODE VARCHAR2(8) NOT NULL ,
ITEMID VARCHAR2(10) NOT NULL ,
COMKIND VARCHAR2(1),
COMMISSION DECIMAL(32,6)
) ON COMMIT PRESERVE ROWS';
INSERT INTO T_11(treatyid, comcode, itemid, comkind,commission)
SELECT treatyid, comcode, itemid, comkind,commission
FROM T_22
WHERE flag = ‘1’ AND comkind IS NOT NULL AND COMMISSION IS NOT NULL;
– 返回临时表的名称
RETURN sp_errstr;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERR: '||SQLCODE||': '||SQLERRM);
sp_errstr:=SQLERRM;
END;
V4.2.1
稍等,内部测试下
你使用的企业版的oracle租户吧,社区版没有oracle模式,可以联系企业侧。不过4.x的临时表功能目前还不稳定,具体建议找企业侧确认下。
社区版会存在这种问题么?我们正在选型,存储过程是较为重要的一个指标
社区版mysql租户暂时还不支持临时表功能的,无法验证这个问题。
不好意思,我刚接触,还区分不出各个版本。但是,社区版MySQL不支持临时表?
有各版本支持功能清单的文档么?
这个链接有一些功能区别,但没细致到小的类型功能,OceanBase分布式数据库-海量数据 笔笔算数
一般官网上搜索功能,对应mysql租户没有相关介绍的,基本是不支持的。或者可以看各个版本的release node。
临时表后续会支持,当前还在做。
如果有什么功能不支持的,也可以给我们提issue。https://github.com/oceanbase/oceanbase/issues
谢谢