Я только начал работать с Oracle, и я использую SQL Developer для тестирования, прежде чем я начну добавлять материал в свое приложение, но у меня возникают проблемы, потому что Oracle ведет себя по-другому, чем каждый другой механизм базы данных, с которым я работал.Процедура Oracle Run с одним параметром и множественным параметром
Я создал фиктивную таблицу:
CREATE TABLE "ROOT"."EMPLOYEES"
( "ID" NUMBER NOT NULL ENABLE,
"FIRSTNAME" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"LASTNAME" VARCHAR2(30 BYTE) NOT NULL ENABLE,
"EMAIL" VARCHAR2(40 BYTE) NOT NULL ENABLE,
CONSTRAINT "EMPLOYEES_PK" PRIMARY KEY ("ID")
)
И тогда я создал процедуру:
create or replace PROCEDURE get_employee
(
emp_id IN NUMBER,
m_FirstName OUT Varchar2,
m_LastName OUT Varchar2,
m_Email OUT Varchar2
)
AS
BEGIN
SELECT
FirstName
,LastName
,Email
INTO
m_FirstName,
m_LastName,
m_Email
FROM EMPLOYEES
WHERE
ID = emp_id;
END get_employee;
Проблема в том, я получаю ошибку компиляции, когда я пытаюсь запустить процедуру:
Declare x VARCHAR2(30);
y VARCHAR2(30);
z VARCHAR2(40);
Begin
exec GET_EMPLOYEE(1, :x, :y, :z);
SYS.DBMS_OUTPUT.PUT_LINE(x);
End;
Я получаю эту ошибку:
ОРА-06550: строка 8, колонка 4: PLS-00103: Встречающиеся символ «конец файла», когда ожидает одно из следующих действий:
(начало случай объявить конечный выход исключений для Goto, если мод петли null pragma raise return select update while with идентификатор double-quoted 06550. 00000 - "строка% s, столбец% s: \ n% s" * Причина: Обычно ошибка компиляции PL/SQL. * Действие: PL/SQL процедура успешно завершен.
Я действительно не уверен, как изменить свой вызов процедуры, чтобы заставить ее работать с SQL Developer. Любая помощь будет принята с благодарностью.
Заменить эту строку: 'EXEC GET_EMPLOYEE (1, Х, у,:: г);' 'только с GET_EMPLOYEE (1, х, у, г);' - удалить 'exec' и все двоеточие , Также поместите '/' после последнего 'конца;' – krokodilko