ORACLE PL / SQL Ошибка с хранимой процедурой при просмотре информации из 3 столбцов - PullRequest
0 голосов
/ 26 октября 2018

Я создал хранимую процедуру для получения некоторой информации из 3 столбцов.Я могу скомпилировать его без ошибок, но когда я делаю EXEC, я получаю ошибку:

PL/SQL: Statement ignored
06550. 00000 -  "line %s, column %s:\n%s"

Вот PL / SQL:

CREATE OR REPLACE PROCEDURE consult_employee(
e_id IN OUT EMPLOYEES.EMPLOYEE_ID%TYPE,
e_nom   OUT EMPLOYEES.FIRST_NAME%TYPE,
e_job   OUT EMPLOYEES.JOB_ID%TYPE
) IS
BEGIN
-- Consult the employee
SELECT employee_id, first_name, job_id
INTO e_id, e_nom, e_job
FROM employees
WHERE employee_id = e_id;
DBMS_OUTPUT.PUT_LINE('Your consult is: ' || e_id || e_nom || e_job);
END;

Когда я выполняю следующее, Я получаю ошибку:

EXEC consult_employee(102);

И вот что у меня на столе:

EMPLOYEE_ID | FIRST_NAME | JOB_ID
____________|____________|________
    102     |    Lex     | AD_VP

1 Ответ

0 голосов
/ 26 октября 2018

Ваша процедура ожидает три параметра, но вы передаете только один.И все три параметра, которые вы передаете, должны быть переменными, а не константами, потому что они являются параметрами IN OUT или OUT.

Так что вы должны делать что-то вроде:

DECLARE
  nEmp_id        NUMBER := 102;
  strFirst_name  VARCHAR2(100);
  nJob_id        NUMBER;
BEGIN
  CONSULT_EMPLOYEE(nEmp_id, strFirst_name, nJob_id);

  DBMS_OUTPUT.PUT_LINE('EMP_ID=' || nEmp_id ||
                       '  FIRST_NAME=''' || strFirst_name || '''' ||
                       '  JOB_ID=' || nJob_id);
END;

Bestудачи

...