Sql 如何在一行中将参数传递给JDBC存储过程?
希望有人能帮忙。我们正在使用一个监控应用程序,它通过JDBC连接到DBs。在本例中,我们使用sqljdbc4.jar连接到MSSQL数据库 我们需要执行一个存储过程并将两个参数传递给它,但我正在努力弄清楚如何准确地做到这一点。如果有意义的话,我们使用的软件只允许将一行代码传递给JDBC查询 我尝试了以下方法:Sql 如何在一行中将参数传递给JDBC存储过程?,sql,sql-server,stored-procedures,jdbc,execute,Sql,Sql Server,Stored Procedures,Jdbc,Execute,希望有人能帮忙。我们正在使用一个监控应用程序,它通过JDBC连接到DBs。在本例中,我们使用sqljdbc4.jar连接到MSSQL数据库 我们需要执行一个存储过程并将两个参数传递给它,但我正在努力弄清楚如何准确地做到这一点。如果有意义的话,我们使用的软件只允许将一行代码传递给JDBC查询 我尝试了以下方法: {call procedure('my parameter 1','my parameter 2')} {[?=]call procedure-name[([parameter][,[p
{call procedure('my parameter 1','my parameter 2')}
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
但这不起作用。从我能在谷歌上搜索到的信息来看,我通常需要使用:
{call procedure-name(?,?)}
从这里开始,需要对参数1和参数2进行排序声明,然后将准备好的查询传递给DB。不幸的是,在我的情况下,这不是一个选择
再次转向谷歌,MS Technet具体说明如下:
{call procedure('my parameter 1','my parameter 2')}
{[?=]call procedure-name[([parameter][,[parameter]]...)]}
我还没有试过这个,但如果我读对了,这可能有效吗
{?='my parameter 1',?='my parameter 2' call procedure(?,?)}
我知道我应该在用尽所有的选择后才去问,但我希望有人以前遇到过这个问题并设法解决它。如果有人知道上述方法是否有效,或者其他方法是否有效,我将非常感谢您的输入。格式
{[?=]调用过程名[([parameter][,[parameter]]…])}
并不是您认为的意思。[?=]
表示:可选:?=
用于返回值。注意:更新您的问题非常重要,至少包括1)存储过程的头(但最好是整个过程),2)用于设置和执行此过程的Java代码,以及3)收到的异常消息。您好,马克,谢谢您的反馈。不幸的是,我们使用的软件包不允许使用Java代码(除非启动Java脚本)。我也没有头或者对存储过程的任何访问权限,除了能够使用分配给我们的DB用户运行存储过程之外。我想,为了解决这个问题,我将用我所知道的编写一个Python脚本来实现这一点。我觉得奇怪的是,在执行存储过程时,参数不能直接传递给查询。