为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:03134284552-20260528-330207-20221
【操作系统】:信创环境
【CPU】:
【问题描述】*:SELECT * FROM (VALUES '111', '222', '333', '444', '555', '666', '777', '999') AS t(column_name);
这个DB2执行,放在达梦中报错,如何实现兼容 VALUES 函数
如果程序能修改,可以试着创建一个自定义嵌套类型对象,类似于
--创建对象
CREATE TYPE TP_VALUES IS TABLE OF VARCHAR2(32767);
--对象查询
SELECT COLUMN_VALUE AS COL_NAME
FROM TABLE(TP_VALUES( '111', '222', '333', '444', '555', '666', '777', '999'));
测试结果是下面这样
这个写法在达梦和Oracle下是都支持的,但达梦目前需要外面套一层TABLE,要是Oracle19c里就可以直接可以查TP_VALUES,类似于
期望达梦早日也能实现这个功能

建议将SQL改写为达梦兼容的格式:
方案1、使用达梦的UNION ALL构造虚拟表:
方案2、使用达梦的CONNECT BY语法