这是我实际问题的通用格式。我正在传递一个列名,以便根据子标题获取金额。
让我们假设表 XYZ 代表不同子标题字段的表,它们具有各自的年份,例如
id, office_id, subhead1, subhead2, subhead3, year
现在,发生的事情是参数test_column_name
不起作用。当我在那里手动放置一些字段时,它工作正常。我抛出错误:
"ORA-01722:invalid number"
我的功能如下:
CREATE OR REPLACE FUNCTION TEST_FUNCTION (test_column_name in varchar)
RETURN float
IS
AMOUNT float;
BEGIN
SELECT
SUM(AMOUNT) INTO AMOUNT FROM TEST_TABLE
where
TEST_FIELD IN
(
SELECT DISTINCT test_column_name FROM XYZ_TABLE WHERE XYZ_YEAR='2012'
);
return AMOUNT;
END TEST_FUNCTION;
/
有什么建议吗?