ОШИБКА Oracle: НЕВЕРНАЯ ОШИБКА ЗАЯВЛЕНИЯ SQL - PullRequest
0 голосов
/ 01 ноября 2018

Я создал хранимую процедуру, но не могу выполнить хранимую процедуру. Я не знаю, в чем проблема.

Исходный код:

Create or replace procedure land_naam(klantnummer_input in VARCHAR2
, verzendland_output out VARCHAR2)

AS 

BEGIN

SELECT land into verzendland_output from klanten 

WHERE klantnummer = klantnummer_input;

END land_naam;

Сначала я создаю процедуру без ошибок.

Затем, если я хочу выполнить его, я запускаю код

Execute land_naam;

после этого я получаю ошибку:

ORA-00900: недопустимый оператор SQL

Что я могу сделать, чтобы решить эту проблему? Процедура Сообщение об ошибке

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Поскольку ваша процедура задает как входной, так и выходной параметры, вы должны будете указать их при вызове вашей процедуры:

Чтобы объявить переменную в SQLPlus, которая будет содержать выходные данные, просто используйте

SQL> var out varchar2(100)

Затем вызовите хранимую процедуру с параметром ввода и вывода (в противном случае вы не укажете правильное количество параметров)

SQL> exec land_naam('yourinput', :out)

Наконец, распечатайте содержимое вашей выходной переменной

SQL> print out
0 голосов
/ 01 ноября 2018

Измените ваш код так:

Create or replace procedure land_naam(klantnummer_input in VARCHAR2)
AS 
verzendland_output VARCHAR2(2000);
BEGIN
SELECT land into verzendland_output from klanten 
WHERE klantnummer = klantnummer_input;
END land_naam;

При выполнении процедуры, поскольку у вас есть входной параметр, укажите его.

e.g. EXECUTE land_naam('S');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...