Oracle错误:无效的SQL语句错误

时间:2018-11-01 00:51:47

标签: sql oracle plsql oracle11g

我已经创建了一个存储过程,但是我无法执行该存储过程,我不知道问题出在哪里。

源代码:

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语句

我该怎么做才能解决此问题? The procedure The error statement

2 个答案:

答案 0 :(得分:0)

将您的代码修改为如下形式:

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

答案 1 :(得分:0)

由于过程同时指定了输入和输出参数,因此在调用过程时必须指定这些参数:

要在SQLPlus中声明一个将保存输出的变量,请简单使用

SQL> var out varchar2(100)

然后使用输入和输出参数调用存储过程(否则您没有指定正确数量的参数)

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

最后,输出输出变量的内容

SQL> print out