我有一个VoltDB存储过程,该存储过程采用字符串数组String[]
,并且已成功加载,但是似乎无法使用带有exec的VoltDB SQL查询接口执行存储过程。
也不能在sqlcmd接口中执行它。
我收到此错误:
错误:PrepareStatement错误:过程“ StoredProcedure”的无效参数计数(已接收:3,预期:2,)
如何构造exec语句以从VoltDB中检索存储过程的结果?
答案 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工作。