【发布时间】:2019-05-07 13:36:59
【问题描述】:
我试图为每个销售人员获取总佣金并将其存储到一个函数中以将其放入一个过程中,当我放置一个有效的 select 语句(涉及三个表)时,我得到了 Error(9,20): PL/SQL: ORA-00947: not enough values。我认为是因为 datatype 在此函数中只返回数字,但表中包含导致此问题的其他 varchar 数据类型。
我尝试删除一些 varchar2 数据类型的列,但结果不正确。
以下是我的虚构代码:
create or replace FUNCTION get_total_commission return number
IS
v_total_commission;
--
begin
select
sale_id, sale_acct,sale_name, sum(commission) as total_commission
into v_total from invoice_tbl invoice join commission_tbl commission
on invoice.id = commission.id join sale_tbl sale on sale.id = commssion.id
where invoice.refnr is null;
return to_char(v_total, 'FM99999.00');
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line('err: ' ||SQLERRM);
end get_total_commission;
这将是一个功能,将显示每个销售人员赚取的佣金总额。
【问题讨论】:
-
是的,我知道这是问题之一,我不知道如何返回多个数据类型,因为我不是它的专家......
-
只有每次销售的总佣金收入...我应该删除包含 varchar 的列以匹配返回数据类型吗?
标签: oracle function plsql procedure