gpt4 book ai didi

Oracle关于集合和顺序的表表达式

转载 作者:行者123 更新时间:2023-12-02 06:31:22 24 4
gpt4 key购买 nike

我正在分析一些现有的 PL\SQL 代码,我可以看到 Oracle 集合在使用表表达式的查询中未嵌套的情况。

没有 order 子句,并且代码显然假设项目将按存储在集合中的顺序返回。我知道如果没有“order by”,则不能假设 select 返回的项目顺序,但在这种情况下它似乎有效。

示例代码:

create type s_table as table of varchar2(100);

select rownum, t.* from table(s_table('TERM1', 'TERM2', 'TERM3')) t

我应该担心并更改代码吗?

最佳答案

无 ORDER BY = 无订单保证

这里有一个例子证明了这样一个事实:集合中元素的顺序不一定是元素出现的顺序在基于给定集合对象的其他查询中。

 SQL> CREATE TYPE str_nestab_ty AS TABLE OF VARCHAR2(20);
2 /

Type created.

SQL> SELECT COLUMN_VALUE
2 FROM TABLE(
3 CAST
4 (
5 MULTISET
6 (
7 SELECT 'e10' AS strval FROM DUAL UNION
8 SELECT 'e07' AS strval FROM DUAL UNION
9 SELECT 'e04' AS strval FROM DUAL UNION
10 SELECT 'e20' AS strval FROM DUAL UNION
11 SELECT 'e14' AS strval FROM DUAL
12 )
13 AS str_nestab_ty
14 )
15 );

COLUMN_VALUE
--------------------
e04
e07
e10
e14
e20

SQL>

关于Oracle关于集合和顺序的表表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13987855/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com