我有一个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;
假设最后一条语句是绑定变量的有效使用,但当我尝试运行脚本时,我在最后一行得到了这样的结果:
SQL Error: Missing IN or OUT parameter at index:: 1
我不知道如何继续在这里,因为我不是特别精通甲骨文。
7条答案
按热度按时间e0bqpujr1#
当我在Java代码中使用JDBC时,我也遇到过类似的错误。
根据this website(第二个awnser),它表明您正在尝试执行缺少参数的查询。
例如:
您正在尝试执行没有最后一个参数的查询。
也许在
SQLPlus
中它没有相同的要求,所以它在那里工作可能是一种运气。rekjcdws2#
根据上面留下的注解,我在sqlplus而不是SQL Developer下运行了此语句,UPDATE语句运行得很好,这让我相信这是SQL Developer中的一个问题,特别是因为没有返回ORA错误号。感谢您引导我找到了正确的方向。
jvlzgdj93#
我认为它与jdbc有关。
当我有一个where条件时,我也有类似的问题(缺少参数),如下所示:
没关系,当我有这样的:
所以这是一个命名参数的问题。我认为命名参数的处理有一个bug,看起来好像只有第一个参数得到了正确的值,第二个参数没有被驱动程序类设置。也许这不是bug,只是我不知道什么,但无论如何,我猜这就是为你运行的SQL dev和sqlplus之间的差异的原因。因为据我所知SQL开发人员使用jdbc驱动程序。
pxy2qtax4#
我得到了同样的错误,并发现原因是一个错误或缺少外键。(使用JDBC)
rryofs0p5#
出现此错误是因为某列的别名中有一些打字错误,其中包含问号(例如,contract.reference为contract?ref)
dzhpxtsq6#
我在SQL Developer中遇到问题,因为我错误地使用了绑定。正在使用此绑定,从日志中复制:
变量=?
应该是
变量=:变量
现在,SQL Developer会提示我输入值。
s1ag04yj7#
我在一些用户设置中偶尔会出现同样的错误,而其他用户则满足于相同的报告。我用不同的大小写和北欧字母来编写参数,例如:我把它们改成了HENKILO,只使用大写字母,没有北欧字母,它成功了。
驱动程序是Oracle未知或变化的JDBC版本。
我的错误说明来自某个第三方bin:Excel插件错误:执行语句失败(在索引处缺少IN或OUT参数::4)SQL语句失败,请验证并修正!