问题标签 [callable-statement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5123 浏览

java - CallableStatement PostgreSQL:参数数量无效错误

我试图在 postgresql 中编写示例存储函数并使用 JDBC 提供的 CallableStatement 调用它们。

这是我的一些测试代码

而我的存储函数的形式是 .

但是,当我尝试运行代码时出现以下错误。

知道为什么会发生这种情况吗?

0 投票
1 回答
4740 浏览

stored-procedures - JDBC Call to a stored procedure returns null

I've got some problems with a stored procedure on an Oracle database.

I just want to call a procedure (which has 50 IN parameters and 2 IN OUT parameters) and get these 2 OUT parameters.

I'm trying to execute() the associated CallableStatement but it returns me a NullPointerException

Here is the code (I'm using Hibernate):

If, before the execute(), I set

I've got a SQLSyntaxErrorException (ORA-00911: invalid character)

Could you help me ?

Fab


Here is the solution:

The 2 last parameters of the procedure are IN OUT. I thought that we had to manage them as OUT parameter :

But as they're IN OUT, these parameters have to be declared as IN :

And finally register them as OUT like this :

I hope this may help you :)

0 投票
1 回答
929 浏览

java - 调用 Oracle 过程

我有一个在插入 oracle 的同时调用 oracle 过程的方法,插入语句有效,但该过程不起作用。我没有收到任何错误。谁能明白为什么这不起作用?

0 投票
2 回答
2106 浏览

hibernate - 如何使用 Hibernate 执行多种返回类型的 Oracle 过程?

对于单一输出类型,我的代码工作正常,但我不知道如何执行具有多个输出参数的 Oracle 过程以及输出是什么,即 ResultSet、Number 等。

休眠代码:

有谁知道这是怎么做到的吗?

0 投票
1 回答
4008 浏览

java - 在 java callablestatement 中设置唯一标识符

我正在尝试执行如下存储过程:

如您所见,我在可调用语句中将 Guid/UniqueIdentifier 设置为执行前的参数...但您也可以看出,我在 callableStatement 对象上使用了方法“setString”,结果我“我收到此错误:

com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换为唯一标识符时转换失败。

我想如果有像'setGuid'这样的方法或用于callablestatement对象的方法,我不会遇到这个问题......有人知道解决方法等吗?

编辑:

存储过程“getDeliveryConfirmations”的代码

0 投票
1 回答
689 浏览

java - 在批处理模式下通过可调用语句调用 SP 时检索 OUT 参数

在批处理模式下(executeBatch())通过 Callable 语句调用 SP 时如何检索 OUT 参数中的值。

0 投票
1 回答
135 浏览

mysql - 可调用语句

我在 MySQL 中创建了一个存储过程,并尝试使用 callable 语句来调用它。我有以下错误:

不知道如何继续,也不知道在数据库中的哪里可以找到存储过程。

0 投票
1 回答
180 浏览

jdbc - jdbc中的可调用语句

嗨,我使用可调用语句编写了一个 jdbc 程序,并且我还安装了连接器 j。我也在 mysql 中创建了一个存储过程。我还安装了以下驱动程序

C:\Program Files\MySQL\mysql-connector-java-5.1.21 (3)\mysql-connector-java-5.1.21 但我仍然收到错误

java.sql.SQLException:找不到适合 jdbc:mysql:localhost 的驱动程序

java.lang.NullPointerException

0 投票
4 回答
16721 浏览

java - 只设置一些参数时,如何在 JDBC 中调用存储过程

如果您只想设置一些参数,那么使用 JDBC 调用存储过程的最佳方法是什么?

如果我只是使用 SQL,我可以在 SQL 中按名称设置参数以调用存储过程。例如,如果我有一个包含九个参数的存储过程,并且我想设置参数 1,2 和 9,将其余参数保留为默认值,我可以运行以下 SQL:

使用 JDBC(特别是 jConnect 6.0),似乎在使用 CallableStatement 时,您必须通过它们的整数索引而不是它们的名称来设置参数。如果我尝试为上述存储过程创建一个 CallableStatement,带有 9 个参数,并且只设置参数 1,2 和 9,如下所示:

然后我得到这个 SQLException 抛出:

对于我正在尝试做的一些背景知识,我需要创建一个从 IBM MQ 流接收有关产品的信息的流程,然后在第三个应用程序中创建一个产品。第 3 方应用程序使用 Sybase 来存储它的数据,并创建一个产品,我需要调用一个具有大约 130 个参数的存储过程。对于我需要创建的产品类型,这些参数只需要设置大约 15 个,其余的将保留为默认值。

我考虑过的选项是:

  • 创建一个只设置我需要的值的自定义存储过程,然后调用第 3 方产品存储过程。
  • 为 Java 中的所有参数设置默认值。

当然必须有一个更简单的方法来做到这一点?

0 投票
1 回答
1622 浏览

java - 在包含插入和更新查询的 Java 批处理中调用 Oracle 过程(语句)

我正在开发一个基于 Java 的项目,其中的事情是通过以下方式实现的

  • 有一些类(A、B、C、D....)将 Hash Map 的键作为整数,将值作为字符串的数组列表。arraylist 中的每个 String 元素都是一个 Oracle SQL 查询(INSERT 或 UPDATE)
  • 这些类(A、B、C、D....)的方法在 Map 中循环。使用 JDBC 语句 ( ) 将特定键的所有 SQL 查询添加到批处理中**stmt.addBatch(String)**。对于每个唯一键,都会创建和执行一个单独的批处理。
  • 有许多类(X,Y,Z ...)正在填充此 Map 和字符串数组列表以放置不同的 INSERT 和 UPDATE 查询

现在,我需要为一些键添加一个 Oracle 过程调用,因此应该将它们添加到相应键的字符串数组列表中。

我尝试添加以下字符串来调用程序,但似乎没有人适合我。

我不想修改很多代码,因为它可能会影响其他领域。

我可以在批处理中添加一个可调用语句,但是为此,我需要修改负责准备批处理的所有方法和类,这些方法和类在我的项目中大约 15 个(项目设计不是很好),另外我会必须编写一个标识过程调用的条件,以便我将准备一个可调用语句而不是语句。

有没有其他方法可以做到这一点,而不改变执行批次的类?