【问题标题】:Db2 stored proc execution using vertx jdbc client使用 vertx jdbc 客户端执行 Db2 存储过程
【发布时间】:2021-07-14 09:45:13
【问题描述】:

我是 vertx 的新手 我正在尝试使用 vertx jdbc 客户端为 db2 执行 SP,但不确定如何处理任何线索

【问题讨论】:

  • 您是否连接到 Db2?哪个 Db2 平台?为您的问题添加详细信息
  • 它的 Db2 数据库
  • 遵循文档怎么样? vertx.io/docs/vertx-jdbc-client/java
  • 我试过了,但它没有谈论 SP 和另一个查询我正在努力构建一个小型 POC 来调用 DB 并运行一个简单的查询来检查使用这个 vertx 的连接性,有人可以建议我跨度>
  • Db2 可用作 Linux、Unix、Windows (LUW)、z/OS 和 IBM i 的产品。它们在某种程度上有所不同。他们中的哪一个?

标签: db2 vert.x sp db2-zos


【解决方案1】:

vertx 文档指出:

执行可调用语句(SQL 函数或 SQL 程序)你可以使用 callWithParams 。

这采用标准 JDBC 格式的可调用语句 { 调用 func_proc_name() },可选地包括参数占位符 例如:{ call func_proc_name(?, ?) },一个包含 参数值,最后是包含输出类型的 JsonArray 例如:[null, 'VARCHAR']。

注意输出类型的索引和参数一样重要 大批。如果返回值是第二个参数,那么输出 数组必须包含一个空值作为第一个元素。

当存储过程有输入参数和结果集时,文档给出了这个例子:

String func = "{ call customer_lastname(?, ?) }";

connection.callWithParams(func, new JsonArray().add("John"), new JsonArray().addNull().add("VARCHAR"), res -> {

  if (res.succeeded()) {
    ResultSet result = res.result();
  } else {
    // Failed!
  }
});

当存储过程没有结果集或输出参数时,文档给出了这个例子:

String func = "{ call new_customer(?, ?) }";

connection.callWithParams(func, new JsonArray().add("John").add("Doe"), null, res -> {

  if (res.succeeded()) {
    // Success!
  } else {
    // Failed!
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2012-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多