Oracle PL/SQL 错误 PLS-00103
Posted
技术标签:
【中文标题】Oracle PL/SQL 错误 PLS-00103【英文标题】:Oracle PL/SQL Error PLS-00103 【发布时间】:2014-08-27 07:48:49 【问题描述】:这是代码:
set serveroutput ON;
DECLARE
id_emp NUMBER := '&EmpleadoNumero';
n_commission DOUBLE;
BEGIN
SELECT i.id,
Decode(i.commission_pct, SUM(i.commission_pct) > 100000,
i.commission_pct + ( i.commission_pct * .10 ),
SUM(i.commission_pct) > 100000
AND SUM(i.commission_pct) < 1000000,
i.commission_pct + ( i.commission_pct * .15 ),
SUM(i.commission_pct) > 1000000,
i.commission_pct + ( i.commission_pct * .20 ),
0) N_Commission
FROM s_emp i
inner join s_ord S
ON ( i.id = S.sales_rep_id );
INTO id_emp, n_commission;
dbms_output.Put_line('El empleado numero: '
|| idemp
|| ' tiene una nueva comisión de: '
|| n_comision);
END;
当我尝试它时,我得到:ORA-06550 PLS-00103 错误
【问题讨论】:
您的选择语句没有意义。你想在这里计算什么? 给定员工的佣金百分比 【参考方案1】:你的选择语法错误,应该是
SELECT i.id,
Decode(i.commission_pct, SUM(i.commission_pct) > 100000,
i.commission_pct + ( i.commission_pct * .10 ),
SUM(i.commission_pct) > 100000
AND SUM(i.commission_pct) < 1000000,
i.commission_pct + ( i.commission_pct * .15 ),
SUM(i.commission_pct) > 1000000,
i.commission_pct + ( i.commission_pct * .20 ),
0) N_Commission
INTO id_emp, n_commission
FROM s_emp i
inner join s_ord S
ON ( i.id = S.sales_rep_id );
请注意,into 子句位于 FROM 子句之前,并且您在 FROM 子句本身中使用分号终止语句
【讨论】:
以上是关于Oracle PL/SQL 错误 PLS-00103的主要内容,如果未能解决你的问题,请参考以下文章
Oracle:使用 SQL 或 PL/SQL 查找动态 SQL 中的错误位置