【发布时间】:2014-08-29 21:42:36
【问题描述】:
我需要一种方法来临时存储和使用从 Oracle 查询返回的多个值。在 SQL Server 中,我将值存储在一个临时表中,完成了我的工作,然后删除了该表。我发现 Oracle 的等价物并不那么明确。
这是我正在尝试做的一个 SQL Server 示例:
select id into #temp from SomeTable where SomeColumn = 'Some Value'
:
(do whatever I need to do with #temp data)
:
drop table #temp
我可以很好地围绕 SQL Server 编写代码,但在涉及 Oracle 语法时几乎一无所知。我一直在阅读各种 Oracle 参考资料,但它们并没有太大帮助。我确实读过 Oracle 临时表的工作方式与 SQL 不同,因此通常不推荐使用。
我正在研究临时表路由,但如果有更好的方法可以不使用临时表,我会全力以赴。有人知道在 Oracle 中执行此操作的更好方法吗?
提前致谢。
【问题讨论】:
-
你在你的过程中用
#temp做什么,你为什么要临时实现数据?这将影响如何最好地翻译您的代码。例如,请参阅dba.stackexchange.com/questions/34279/… -
长话短说:我需要交换列中的值。例如,我在 SomeColumn 中有值 SomeValue1 和 SomeValue2。我需要将 SomeValue1 换成 SomeValue2 ,反之亦然。我需要 #temp 值(我实际上有两个)来跟踪哪些 ID 存储了哪些值。
-
我读了一些关于收藏的文章。这绝对有潜力。
-
呃。像往常一样,我想太多了(再次!)。我想出了一个不需要临时表或集合的更简单的解决方案。这就是我在星期五下午晚些时候做这件事的结果!至少我学到了一些新东西(在我问这个问题之前,我对收藏并不熟悉)。谢谢大家的帮助!
标签: oracle tsql plsql temporary-objects