неверный номер ошибки plsql - PullRequest
2 голосов
/ 05 марта 2011

Я получаю ошибку о неправильном номере, когда

procedure Afficher(opt int,id int) is
type emp is record(fn employees.first_name%type,
                   lname employees.last_name%type,
                   job jobs.job_title%type,
                   dep departments.department_id%type);
emp1 emp;
begin
select e1.first_name,e1.last_name,j.job_title,d.department_name into emp1
from employees e1 ,jobs j,departments d where e1.employee_id= 'id' and 
e1.job_id=j.job_id and e1.department_id =d.department_id ;

      dbms_output.put_line('Name      Job       Department');
      dbms_output.put_line(emp1.fn||''|| emp1.lname||'     '
            ||emp1.job||'   '||emp1.dep);

end Afficher;

Ответы [ 2 ]

4 голосов
/ 05 марта 2011

Вы ищете e1.employee_id='id';это на самом деле строка или число?

3 голосов
/ 05 марта 2011

Вы, вероятно, хотите:

procedure Afficher(opt int,id int) is
type emp is record(fn employees.first_name%type,
                   lname employees.last_name%type,
                   job jobs.job_title%type,
                   dep departments.department_id%type);
emp1 emp;
begin
select e1.first_name,e1.last_name,j.job_title,d.department_name into emp1
from employees e1 ,jobs j,departments d where e1.employee_id= id and 
e1.job_id=j.job_id and e1.department_id =d.department_id ;

      dbms_output.put_line('Name      Job       Department');
      dbms_output.put_line(emp1.fn||''|| emp1.lname||'     '
            ||emp1.job||'   '||emp1.dep);

end Afficher;

т.е. без кавычек вокруг переменной id .

Вероятно, лучше переименовать переменную в * emp_id * или что-то подобное.

...