在 FUNCTION 中创建临时表 [重复]
Posted
技术标签:
【中文标题】在 FUNCTION 中创建临时表 [重复]【英文标题】:Create temporary TABLE inside a FUNCTION [duplicate] 【发布时间】:2013-02-12 08:13:35 【问题描述】:如何创建一个临时表,以便在调用函数时返回?
【问题讨论】:
阅读动态 SQL:docs.oracle.com/cd/E11882_01/appdev.112/e25519/… @user2001117:查看标签 Oracle 中的临时表不应该(需要)动态创建;它们是具有会话特定数据的永久对象,而不是您可以传递或返回的东西。请参阅this 和this 了解更多信息。 这是一种 MS T-SQL 做事方式。 Oracle中的临时表不同;要了解更多信息,请在此处查看我对非常相似问题的回答 ***.com/a/1193443/146325 如果没有更多信息,我不确定这个问题有多大用处。这个临时表有什么意义?你到底想达到什么目的?这是一个全局临时表,还是您正在尝试创建一个“类似表”的输出,其中您想要获取的是流水线函数或引用游标? 【参考方案1】:看到这个:
create or replace procedure maketemptab
is
sqlstmt varchar2(500);
begin
sqlstmt := 'CREATE GLOBAL TEMPORARY TABLE(col1 varchar2(10))';
execute immediate sqlstmt;
end;
【讨论】:
那不会创建临时表。 不仅不会创建表(存在 sybtax 错误),以这种方式创建临时表对于 Oracle 来说是惯用的错误。以上是关于在 FUNCTION 中创建临时表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章