具有数组参数的Voltdb存储过程

时间:2019-09-12 14:11:54

标签: database stored-procedures voltdb

我有一个VoltDB存储过程,该存储过程采用字符串数组String[],并且已成功加载,但是似乎无法使用带有exec的VoltDB SQL查询接口执行存储过程。

也不能在sqlcmd接口中执行它。

我收到此错误:

  

错误:PrepareStatement错误:过程“ StoredProcedure”的无效参数计数(已接收:3,预期:2,)

如何构造exec语句以从VoltDB中检索存储过程的结果?

1 个答案:

答案 0 :(得分:1)

不幸的是,使用sqlcmd接口时,没有很好的方法将数组作为参数传递。如果需要测试此过程,最好的方法是编写一个简单的java / python脚本以数组调用该过程。在python中,它看起来像这样:

#!/usr/bin/env python
from voltdbclient import *
client = FastSerializer("localhost", 21212)

# declare array parameters the same as primitives
fooProc = VoltProcedure( client, "Foo", [FastSerializer.VOLTTYPE_BIGINT])

# the set of all parameters is the outer array, the inner array is the parameter value
fooResponse = fooProc.call( [ [1, 2, 3, 4, 5] ] )
for x in fooResponse.tables:
   print x

完全公开:我在VoltDB工作。