从DB2到Oracle的转换: 查询结果

问题描述

我正在研究DB2到Oracle的转换,我想知道这个TABLE关键字在DB2中是什么意思,或者如何在oracle中将其转换?该代码是表格功能的一部分。

SELECT   A.A_REQUESTER,A.A_TIME,A.A_NAME,F.LOCAL,F.MSGS
FROM STRTOK_SPLIT_IS_TABLES A( A_REQUESTER,A_TIME,A_NAME,A_CODE ),TABLE( SYSPROC.GET_MSGS(
       INLOCAL,A.A_CODES,( SELECT TOKEN FROM STRTOK_SPLIT_TABLES_USHARE B
  WHERE A.A_REQUESTER = B.REQUESTER
  AND A.A_TIME      = B.ETIME
  AND A.A_NAME       = B.NAME
  AND B.ORDINAL=1 ) ) 
    ) F;

解决方法

我对DB2不熟悉,但是如果它与Oracle具有相同的含义,那么它就可以用于将类型对象或函数调用“投射”到表中,以便可以在SQL语句中对其进行引用。

下面的(Oracle)示例将类型SYS.ODCIVARCHAR2LIST连接到DUAL。 SYS.ODCIVARCHAR2LIST类型定义为

CREATE OR REPLACE TYPE SYS.ODCIVARCHAR2LIST FORCE AS VARRAY(32767) OF VARCHAR2(4000);

使用TABLE关键字可以像引用实际表一样引用类型。如果您使用的是Oracle 19,则不再需要TABLE关键字。

查询

SELECT *
  FROM DUAL,TABLE (sys.odcivarchar2list ('tab_val_1','tab_val_2','tav_val_3','tab_val_4'));

结果

   DUMMY    COLUMN_VALUE
________ _______________
X        tab_val_1
X        tab_val_2
X        tav_val_3
X        tab_val_4

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...