【问题标题】:Voltdb stored procedures with array parameters带有数组参数的 Voltdb 存储过程
【发布时间】:2019-09-12 14:11:54
【问题描述】:

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

在sqlcmd界面也不能执行。

我收到此错误:

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

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

【问题讨论】:

    标签: database stored-procedures voltdb


    【解决方案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 工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 2018-10-04
      • 2020-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多