【问题标题】:Oracle PL/SQL Error PLS-00103Oracle PL/SQL 错误 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 错误

【问题讨论】:

  • 您的选择语句没有意义。你想在这里计算什么?
  • 给定员工的佣金百分比

标签: sql oracle 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 子句本身中使用分号终止语句

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多