【发布时间】:2016-09-27 02:11:24
【问题描述】:
我希望能够在 CTE 中定义一个输入参数,然后在 REGEXP_SPLIT_TO_TABLE 函数中使用它,如下所示:
WITH PARAMS (INPUT_PARAMS) AS
(SELECT
'?InputParams' AS INPUT_PARAMS
)
SELECT
TEST_TABLE.SPLIT_PARAMS
FROM
TABLE (REGEXP_SPLIT_TO_TABLE(1, PARAMS.INPUT_PARAMS, '\|', 'i')
RETURNS (outkey INTEGER, TOKENNUM INTEGER, SPLIT_PARAMS VARCHAR(8192) CHARACTER SET UNICODE)) AS TEST_TABLE
CROSS JOIN PARAMS
但是这会产生以下错误:
选择失败。 [3706] 语法错误:不支持连接表 与表运算符或表函数结合使用 可变输入参数。
将参数正确地放入函数中,如下所示:
SELECT
TEST_TABLE.SPLIT_PARAMS
FROM
TABLE (REGEXP_SPLIT_TO_TABLE(1, '?InputParams', '\|', 'i') --
RETURNS (outkey INTEGER, TOKENNUM INTEGER, SPLIT_PARAMS VARCHAR(8192) CHARACTER SET UNICODE)) AS TEST_TABLE
但我想知道是否有办法做更像上面第一个例子的事情。
【问题讨论】: