Oracle"SQL错误:索引:: 1处缺少IN或OUT参数"

Oti*_*tis 7 oracle oracle-sqldeveloper

我有一个类似于以下内容的Oracle脚本:

variable L_kSite number;
variable L_kPage number;
exec SomeStoredProcedureThatReturnsASite( :L_kSite );
exec SomeStoredProcedureThatAddsAPageToTheSite( :L_kSite, :L_kPage );
update SiteToPageLinkingTable 
set HomePage = 1 
where kSite = :L_kSite and kPage = :L_kPage;
Run Code Online (Sandbox Code Playgroud)

据说最后一个语句是对绑定变量的有效使用,但是当我尝试运行脚本时,我在最后一行得到了这个:

SQL Error: Missing IN or OUT parameter at index:: 1
Run Code Online (Sandbox Code Playgroud)

我不知道如何继续这里,因为我不是特别精通Oracle.

For*_*gic 15

当我在Java代码中使用JDBC时,我遇到了类似的错误.

根据这个网站(第二个awnser),它建议您尝试使用缺少的参数执行查询.

例如 :

exec SomeStoredProcedureThatReturnsASite( :L_kSite );
Run Code Online (Sandbox Code Playgroud)

您正在尝试执行不带最后一个参数的查询.

也许在SQLPlus它没有相同的要求,所以它可能是一个运气,它在那里工作.


Oti*_*tis 5

基于上面留下的评论,我在sqlplus而不是SQL Developer下运行了这个并且UPDATE语句完美运行,让我相信这是SQL Developer中的一个问题,特别是因为没有返回ORA错误号.感谢您带领我朝着正确的方向前进.

  • SQL Developer没问题。“变量L_kSite号;”是一个特定的SQL加结构。 (2认同)