问题标签 [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 投票
0 回答
670 浏览

java - 从 Java 调用过程并使用 RAISERROR 引发异常

我正在从 JAVA 调用 MsSql 程序以使用以下代码创建发票:

在我的程序中,我select @cErrorOut;用于调试目的。

但是,如果我像上面的示例那样使用 select,则问题就在这里,我不会从中得到 SqlExceptionRAISERROR (@cErrorOut,16,1);但是如果我删除 select,一切看起来都很好。如果我从 ManagementStudio 调用过程,无论是否选择,我都会收到预期的错误。这是为什么?

这是工作和不工作的例子:

由于选择(NOT OK),我们没有得到 sql 异常的示例:

我们得到 sql 异常(OK)的示例:

在变量中选择工作正常 - 异常不受影响:

我正在使用 MsSql 服务器 2008 r2。

0 投票
1 回答
223 浏览

jdbc - SQLException: 无法在当前上下文中提交语句

我在通过准备好的语句调用存储过程时遇到了这个异常,但是它适用于可调用语句。我想知道是否必须使用可调用语句来调用 voltdb 中的存储过程?

下面抛出异常:

这个工作正常。

0 投票
1 回答
652 浏览

java - 将'select from dual'作为参数传递给java可调用语句

我试图SELECT FROM DUAL作为参数传递给java中的可调用语句,例如:

当我调用此函数时,出现异常:ORA-06550:第 1 行,第 165 列:PLS-00103:在期望以下之一时遇到符号“SELECT”:(-+ case mod new not null others...

当我调用函数 as{?=call function1( ?, ?, ?)}时,它工作正常,但我需要调用另一个函数作为参数(例如密码加密)。

有没有办法将一个函数作为另一个函数的参数调用?

0 投票
1 回答
1810 浏览

java - 使用 statement.setArray() 将 Scala Option[List[_]] 传递给 Java JDBC Array

我正在尝试构建从 Scala 到 JDBC callableStatements 的接口。在大多数情况下,它很简单,除了Lists.

我需要能够采用List某种类型的 Scala,并将其转换为可以传递给的 Java 数组,statement.setArray(type, array)但我没有任何运气(部分原因是我不太了解 Java 和 JDBC)。

这是我正在尝试做的事情:

对于简单的值来说这很简单,但是当涉及到setArray()调用时,我就卡住了。

任何建议将不胜感激。被困在这几个小时...

0 投票
1 回答
531 浏览

java - 使用 PrepareCall 方法将参数传递给函数并返回计数值

我在 Oracle 中编写了一个函数,它接受一个参数并返回一个计数。存储过程的返回类型是数字。我在 Java 中使用 PrepareCall 方法调用该函数,

这是抛出一个 SQLException。

错误信息是这样的:ERROR: SQL Exception when execution F_CHK_PREVIOUSLOAD

错误消息是:索引处缺少 IN 或 OUT 参数:: 2 SQLState: null

请告诉我哪里出错了。谢谢。

0 投票
2 回答
2081 浏览

arrays - 如何将 NULL(或空)数组传递给 JDBC callableStatement(需要一个数组)

我无法将 NULL 值传递给需要 Array 类型的 JDBC 存储函数(使用可调用语句)。如果我试图将 IN 参数设置为 NULL,这只是一个问题(例如,我可以创建并传递一个空数组,但我不应该这样做)。

例如,我可以将其作为解决方法:

但这让我很困扰。首先,应该有一个用于传递 NULL 数组的 API。其次,我无缘无故地创建了一个空数组(我必须创建正确的数组类型,所以这不是单行的,我需要支持几种不同的类型)。它变得混乱。

我认为我应该能够做到这一点(或者至少是非常相似的东西):

但这会导致异常:

com.edb.util.PSQLException:错误:函数 app_fetch_user_list_pkg.n_execute(字符变化,字符变化 [],字符变化,布尔值,整数)不存在

有任何想法吗?(我们正在使用 Postgresql/EDB 以及 Oracle ......到目前为止,我一直在尝试使用 Postgresql 实例)。

0 投票
0 回答
414 浏览

java - 如何将 Java byte[] 转换为 java.lang.Object[](传递给 JDBC 中的 callableStatement()

我正在尝试将 abyte[]转换为java.lang.Object[]. 基本上这是这里讨论的相反问题,并且与我在 Scala 中的 callableStatements 上的问题有关(但不同于)。

底线:我有一个byte[]代表二进制文件的文件。callableStatement.setObject()我需要使用将它传递给 JDBC ,createArrayOf("byte", objectArray)但我不知道如何将我byte[]的转换为Object[].

这就是我现在所拥有的......该getBytes()函数返回,byte[]但这当然会产生编译器错误:

不幸的是,这会产生编译器错误:

SentimentDao.java:111:错误:不兼容的类型:byte[] 无法转换为 Object[]

此外,我不完全确定第一个论点createArrayOf()应该是byte(如果您知道,请也将其添加到您的答案中)。

谢谢 - 非常感谢您的帮助!

0 投票
1 回答
943 浏览

java - 使用 callablestatement 或 jdbctemplate 进行 mysql 插入的 char 编码

执行插入 mysql 表时,我遇到了字符编码问题。我关注的表字段具有以下属性:

整理:utf8_general_ci varchar(255)

问题出现在中文和外文字符上。我尝试使用 callablestatement 来调用存储过程,但它不起作用,因为条目如下所示:

我调试了一下,发现callablestatement charencoding属性有这个值;

我还没有找到改变这种情况的方法。我尝试将我插入的值设置为 NVARCHAR 但这也不起作用。尝试使用 JDBCTemplate 进行插入的建议也不起作用:

和可调用语句代码:

这令人沮丧。我知道 .NET 在使用 SQL 插入以编码 UTF-8 时将其作为默认设置。任何帮助表示赞赏,

0 投票
1 回答
94 浏览

java - MySQL CallableStatement.getObject 行为不一致

我在测试模式中定义了以下简单过程_test_jdbc_inconsistency,在我的开发系统上的 MySQL 实例中

但令我惊讶的是,以下简单的测试失败了

不一致在最后一条assertTrue语句上被标记;在调用CallableStatement.getObject接受参数索引的重载返回预期类型 ( java.lang.Integer) 的结果时,另一个接受参数名称的重载返回类型不一致的结果java.lang.Long。由于我使用有符号整数并基于许多关于使用JDBC使用out 参数的说明,特别是MySQL 文档提供的那个,因此该过程似乎是正确的,这看起来像是一种不一致的行为

其他人可以确认这个问题吗?

我的环境:

  • 视窗 8.1 x64
  • JDK 1.8.0_45 (x64/x86)
  • MySQL 连接器/J 5.1.34
  • MySQL 服务器 5.6.24
  • 测试NG 6.9.5
0 投票
1 回答
865 浏览

java - 通过 Java 代码调用 Oracle 存储过程时出错

我在 Java 应用程序中调用 PL/SQL 过程来更新数据库条目。

但我在 executeUpdate() 收到以下错误

我在哪里做错了?