如何在oracle过程中将全局临时表转换为集合/类型
我有一个使用临时表的过程。我想摆脱临时表并使用集合来删除 I/O。它有大约 5000 条记录。
我想将数据插入到这个集合中,然后我想访问该集合,例如:
select * from table(my_type_for_gtt)
我找不到这样的示例。我很困惑,我是否必须首先创建记录类型,然后创建为表?
有人可以举一个简单的小例子吗?
I have a procedure that is using a temp table. I want to get rid of the temp table and use a collection to remove I/O. it has about 5000 records.
I want to insert data into this collection then I want to access the collection like:
select * from table(my_type_for_gtt)
I could not find an example of this. I'm confused, do I have to first create a record type and then create as table of?
can someone please show a quick small example?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正朝着正确的方向前进 - 首先创建您的类型
接下来是一些返回集合“行”的示例函数
变体 - 这次我们使用管道,以便结果在创建时返回到查询。请注意,尽管是一个函数,但 PIPELINED 函数没有结束 RETURN。
要将临时表替换为纯粹的内存数据,您将需要一些东西来存储您的集合 - 即带有状态的包。
You are heading in the right direction - first create your types
Next some example functions returning 'rows' of your collection
Variation - this time we use pipelining, so that the results are returned to the query as they are created. Note that despite being a function, there is no end RETURN for a PIPELINED function.
To replace your temp table with purely in-memory data, you will need something to store your collection in - i.e. a package with state.