问题标签 [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.
java - 从 Java 调用过程并使用 RAISERROR 引发异常
我正在从 JAVA 调用 MsSql 程序以使用以下代码创建发票:
在我的程序中,我select @cErrorOut;
用于调试目的。
但是,如果我像上面的示例那样使用 select,则问题就在这里,我不会从中得到 SqlExceptionRAISERROR (@cErrorOut,16,1);
但是如果我删除 select,一切看起来都很好。如果我从 ManagementStudio 调用过程,无论是否选择,我都会收到预期的错误。这是为什么?
这是工作和不工作的例子:
由于选择(NOT OK),我们没有得到 sql 异常的示例:
我们得到 sql 异常(OK)的示例:
在变量中选择工作正常 - 异常不受影响:
我正在使用 MsSql 服务器 2008 r2。
jdbc - SQLException: 无法在当前上下文中提交语句
我在通过准备好的语句调用存储过程时遇到了这个异常,但是它适用于可调用语句。我想知道是否必须使用可调用语句来调用 voltdb 中的存储过程?
下面抛出异常:
这个工作正常。
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( ?, ?, ?)}
时,它工作正常,但我需要调用另一个函数作为参数(例如密码加密)。
有没有办法将一个函数作为另一个函数的参数调用?
java - 使用 statement.setArray() 将 Scala Option[List[_]] 传递给 Java JDBC Array
我正在尝试构建从 Scala 到 JDBC callableStatements 的接口。在大多数情况下,它很简单,除了Lists
.
我需要能够采用List
某种类型的 Scala,并将其转换为可以传递给的 Java 数组,statement.setArray(type, array)
但我没有任何运气(部分原因是我不太了解 Java 和 JDBC)。
这是我正在尝试做的事情:
对于简单的值来说这很简单,但是当涉及到setArray()
调用时,我就卡住了。
任何建议将不胜感激。被困在这几个小时...
java - 使用 PrepareCall 方法将参数传递给函数并返回计数值
我在 Oracle 中编写了一个函数,它接受一个参数并返回一个计数。存储过程的返回类型是数字。我在 Java 中使用 PrepareCall 方法调用该函数,
这是抛出一个 SQLException。
错误信息是这样的:ERROR: SQL Exception when execution F_CHK_PREVIOUSLOAD
错误消息是:索引处缺少 IN 或 OUT 参数:: 2 SQLState: null
请告诉我哪里出错了。谢谢。
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 实例)。
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
(如果您知道,请也将其添加到您的答案中)。
谢谢 - 非常感谢您的帮助!
java - 使用 callablestatement 或 jdbctemplate 进行 mysql 插入的 char 编码
执行插入 mysql 表时,我遇到了字符编码问题。我关注的表字段具有以下属性:
整理:utf8_general_ci varchar(255)
问题出现在中文和外文字符上。我尝试使用 callablestatement 来调用存储过程,但它不起作用,因为条目如下所示:
我调试了一下,发现callablestatement charencoding属性有这个值;
我还没有找到改变这种情况的方法。我尝试将我插入的值设置为 NVARCHAR 但这也不起作用。尝试使用 JDBCTemplate 进行插入的建议也不起作用:
和可调用语句代码:
这令人沮丧。我知道 .NET 在使用 SQL 插入以编码 UTF-8 时将其作为默认设置。任何帮助表示赞赏,
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
java - 通过 Java 代码调用 Oracle 存储过程时出错
我在 Java 应用程序中调用 PL/SQL 过程来更新数据库条目。
但我在 executeUpdate() 收到以下错误
我在哪里做错了?