相关疑难解决方法(0)

Oracle中的匿名TABLE或VARRAY类型

在Oracle中,我有时会想要创建这些构造

SELECT * FROM TABLE(STRINGS('a', 'b', 'c'))
SELECT * FROM TABLE(NUMBERS(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)

显然,我可以为上述声明我自己的类型.我可以选择TABLEVARRAY.例如:

CREATE TYPE STRINGS AS TABLE OF VARCHAR2(100);
CREATE TYPE NUMBERS AS VARRAY(100) OF NUMBER(10);
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,另一种解决方案是编写类似的东西

SELECT 'a' FROM DUAL UNION ALL
SELECT 'b' FROM DUAL UNION ALL
SELECT 'c' FROM DUAL
Run Code Online (Sandbox Code Playgroud)

但是我可能有更复杂的例子,我真的需要一个TABLE/ VARRAYtype.那么如果我的SQL运行在一个我无法创建类型的未知系统上,因为我可能没有必要的资助呢?

所以我的问题是: Oracle是否知道任何Oracle实例上可用的"匿名" TABLE/ VARRAY类型?类似于Postgres/H2/HSQLDB的简单ARRAY类型?

更新:如果这是相关的,我主要是从Java运行这个SQL.不需要向我解释PL/SQL,我只是在寻找匿名的SQL数组类型(即"匿名" 独立存储类型).如果它们根本不存在,答案是否定的

sql arrays oracle anonymous-types

19
推荐指数
2
解决办法
2万
查看次数

标签 统计

anonymous-types ×1

arrays ×1

oracle ×1

sql ×1