我已经构建了此函数来打印所有项目的列表以及每个项目的总承诺量。我需要格式化输出以显示$
符号,逗号和值的两位小数。从SQL语句中用to_char调用PL/SQL函数
到目前为止,我可以得到结果,但没有格式。我在函数中包含了to_char
。
当我调用它,我收到此错误:
ORA-06502: PL/SQL: numeric or value error: character to number conversion error
ORA-06512: at "SYSTEM.DD_PROJECT_SF", line 19
06502. 00000 - "PL/SQL: numeric or value error%s"
*Cause:
*操作:
这里是我的功能:
create or replace function DD_PROJECT_SF (
project_id dd_project.idproj%type)
return number is
pledge_amount dd_pledge.pledgeamt%type;
project_name dd_project.projname%type;
projid dd_pledge.idproj%type;
begin
select idproj, projname into projid, project_name from dd_project
where idproj = project_id;
select to_char(sum(pledgeamt), '$9,990.99') into pledge_amount from dd_pledge
where idproj = project_id;
if (pledge_amount = 0) then
return 0;
else
return pledge_amount;
end if;
return pledge_amount;
end DD_PROJECT_SF;
这是调用SQL语句:
select idproj, projname, DD_PROJECT_SF(idproj) from dd_project;
我该如何解决这个问题?
“dd_pledge.pledgeamt”的类型是什么? –
@JoachimIsaksson它是数字(8,2) – user2396035