从oracle中的sql脚本调用函数

问题描述 投票:0回答:1

在这段代码中我称之为FSG.REPLACE_STRING函数,它有2个参数,原始字符串和特殊字符串。原始字符串是表中的选择查询,特殊字符串是“A”。

我写了代码:

FSG.REPLACE_STRING ( (SELECT CAST(NVL(PRAD_ID            , ' ') AS CHAR(12))
FROM FSG_WRK.FSG_PRCB_AUXDB_PRAD WHERE PRAD_ID= '003204091007'), A );

但这不起作用。

oracle function
1个回答
2
投票

您正在尝试将表列值传递给函数,因此您需要重构您的语句:

SELECT FSG.REPLACE_STRING (CAST(NVL(PRAD_ID, ' ') AS CHAR(12)), 'A')
FROM FSG_WRK.FSG_PRCB_AUXDB_PRAD
WHERE PRAD_ID= '003204091007';

虽然如果你在查询中过滤特定的(非空)值,NVL()部分似乎有点无意义。投射到char看起来也很可疑。

© www.soinside.com 2019 - 2024. All rights reserved.