考虑以下情况:
SELECT TestPkg.getData(123) FROM dual;
返回正确的结果,但
SELECT TestPkg.getData(SELECT TO_NUMBER('123') FROM dual) FROM dual;
错误表达错误,为什么会这样?如何解决我们将值传递给依赖于查询值的函数的情况。
答案 0 :(得分:4)
要评估选择结果,您需要括号:
SELECT TestPkg.getData( (SELECT TO_NUMBER('123') FROM dual) ) FROM dual;
一对用于函数调用,一个用于评估选择结果。
答案 1 :(得分:1)
我认为你需要:
SELECT TestPkg.getData(TO_NUMBER('123')) FROM dual;