2014-08-27 3 views
1

Это код:Oracle PL/SQL Ошибка PLS-00103

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 ошибки

+0

Ваших себе лекция не имеет смысла. Что вы пытаетесь рассчитать здесь? – Noel

+0

комиссионный процент от данного сотрудника – Ilemar

ответ

0

Ваш выбор синтаксис неправильно, это должен быть

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); 

отмечает, что в предложение предшествует ЕК и вы завершение оператора с точкой с запятой в ЕКЕ самой

Смежные вопросы