问题标签 [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 - 当它获取一行数组时如何从prepareCall获取详细信息
我有一个使用 prepareCall 连接到 Db 的程序。有一个功能可以浏览 Db 中的某些元素。这是此功能的一部分:
我在java中有以下代码:
那会给我一排桌子。我如何逐个元素地访问它们?
我想用这个数字做一些计算,所以我需要把它们分开。
我找到了一些方法来做到这一点,但它不起作用。
postgresql - PostgreSQL CallableStatement:偏移量 6 处的格式错误的函数或过程转义语法
我在使用 CallableStatement 调用 Postgres 存储函数的 Java 应用程序中出现错误。错误如下:
需要注意的是,我使用的是 Postgres 9.2、posgresql-9.1-902.jdbc3.jar 和一个 c3p0-0.9.2-pre4.jar 连接池。
这是我要调用的存储函数:
进行调用的 Java 方法:
超类中的一些全局变量
道:
我不知道为什么会这样。我已经能够成功地从一个返回 refcursor 的 Postgres 存储函数中获得结果,而且我似乎无法弄清楚该函数/函数调用与这个函数/函数调用之间的任何区别。
任何想法将不胜感激
java - CallableStatement, named paremeters and order of binding
I'm using a CallableStatement to execute a SQL query with named parameters, and I'm getting different results depending on the order in which I bind the parameters. Here's my full test:
It fails because col_a contains "b", and col_b contains "a". If I switch the two calls to stmt.setObject
to make them in the order the variables appear in the query, then it works.
I've also tried:
- using setString/getString instead of setObject/getObject
- referencing columns by their index (
resultSet.getObject(1)
for col_a and2
for col_b) - combining both:
resultSet.getString(resultSet.findColumn("col_a"))
Any idea of what I'm doing wrong, or of any other way I could be doing this?
I can't do with positioned parameters (with ?
) in PreparedStatement, as I can get different queries with the same parameters in different order.
For instance, I could get those two queries to execute:
select nvl(foo, :a), :b || something from my_table
select decode(:b, 'b', aaa, ccc), eee || :a from another_table
The statements have nothing in common except the presence of the variables :a
and :b
. But they are not in the same order, which means I cannot replace them with ?
and then use a PreparedStatement with variables binding with stmt.setObject(1, a); stmt.setObject(2, b);
, because it would work for the first one, but not for the second.
In case it's useful, I'm using ojdbc6-11.2.0.2.0, and the database is also in 11.2.0.2.0.
java - PL/SQL:将表列的值插入数组或 VARRAY 以供 java 访问?
我需要从表中的特定列中获取值并将它们放入数组中。我正在考虑使用 PL/SQL 存储过程,然后在 java 中调用该过程并使用类似的东西:
我正在考虑使用类似的东西:
在存储过程中但这不起作用
java - 使用 apache DBUtils 调用存储过程
我找不到我们如何使用 DBUtils 来调用可调用语句
我们能否指定哪些字段是输入,哪些字段是重新输出?
mysql - 尝试检索存储函数的返回值时参数索引超出范围
我有一个函数,它接受一些参数并生成一个唯一的 varchar id 以返回给应用程序。当我从我的 java 应用程序调用该函数时,它会执行(插入数据),但是当我尝试检索 outparam 时,它会引发 SQL 异常
参数索引超出范围(1 > 参数个数,即 0)。
爪哇代码:
我正在使用 Navicat 与 MySQL 一起工作,该过程在 Navicat 中执行并显示正确的返回值。但是,当我从 java 应用程序调用 tmt.getString(1) 时,它会引发上述异常。
请帮忙。谢谢你。
java - 将 * 作为参数传递时可调用语句花费大量时间
我有以下一段代码。当我传递像“firstname lastname”这样的普通字符串时。存储过程很快就会返回。但是当我用 firstname* 调用它时,它需要很多时间。当我使用 firstname* 执行存储过程时,不会超过 2 秒。这是下面的代码
jdbc - 是否有替代使用一个语句的 ResultSet 作为格式字符串参数来执行另一个语句
PostgreSQL 9.2、jdbc4 和 DBMS 通过 PgAdmin3。
我需要使用语句对象检索一些结果集,该语句对象是具有存储函数的可调用对象,然后通过比较这些结果集类型来处理类型。在我处理它们之后,我希望将它们中的一些设置为另一个语句的格式字符串参数。
这是我想要完成的一些伪代码。本质上,我想迭代地添加到批处理,然后使用保存点或回滚进行批处理更新,并在执行该批处理后提交这些更改。
此外,存储过程中有一些 postgres 作为 jdbc 相关语法的字符串,我不确定是否使用 IS NULL、转义引号、需要分号等。
在这种情况下是否可以混合和匹配准备好的语句、可调用的语句或语句?
我知道在执行该语句之前,每个语句只能打开一个结果集,但是如果它关闭,我如何保留结果集的类型对象(即 getXXX 并将其存储为某种数据类型)以在另一个语句上使用?
这适用于首先使用 select 检索数据,然后是三个更新的应用程序。所有这三个都将是具有不同参数的批量更新,这些参数将遍历数据库的行,所有这些都在每次更新后提交的单独事务上进行。每次更新都将是一个单独的函数。
我本来是想用一个语句的结果集,然后用updateXXX和updateRow,但我对效率并不完全确定。
java - 读取输出参数后无法获取结果集
我正在使用 java 访问 mssql 2012 DB
我有一个存储过程“procX”,参数中只有 1 个(比如命名为@p1)并返回一个结果集。除非我在获得结果集之前尝试读取返回值,否则它工作正常。代码如下。如果我删除“//”并获得返回值,我会得到null
结果。
即使我在获得结果集后读取了返回值,这也会关闭结果集。
有没有办法读取返回值而不导致无法获取结果集?
据我所知,这种情况不受返回值限制,也适用于任何其他输出参数。
java - CallableStatement + 插入从同一个表中选择的新行的过程返回新的 PK
我正在尝试在表中插入新行,该行是从同一表中选择的行的副本。我创建了一个过程,它根据表中的 id 选择行,并用一些新值插入回同一个表中。该过程还返回新行的 PK。
当我执行 CallableStatement 时,出现以下异常:
我找不到错误
Commond没有正确结束
在我的程序中
我的代码供参考。任何帮助或提示表示赞赏。谢谢你。