在这段代码中我称之为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 );
但这不起作用。
您正在尝试将表列值传递给函数,因此您需要重构您的语句:
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
看起来也很可疑。