问题标签 [java-stored-procedures]

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 投票
3 回答
1231 浏览

mysql - SQL 存储过程 VS 外部语言过程

我想知道SQL存储过程和用一些通用编程语言编写的过程有什么好处和缺点,更准确地说,在什么情况下首选哪种方法。

0 投票
1 回答
794 浏览

java - 从可调用语句的 OUT 参数中检索意外的空值

我有两个过程:一个 java 存储过程 JAVA_P(),它链接到一个静态方法 O.execute() 和一个 pl/sql 过程 SQL_P(in_param IN CUSTOM_TYPE_1, out_param OUT CUSTOM_TYPE_2)。

JAVA_P 使用 CallableStatement 调用 SQL_P。

现在是一个很大的 WTF:当我在 oracle 外部(来自外部 jvm)运行 O.execute() 时,收到的 out_param 已按预期设置。当我将 O.execute() 作为 JAVA_P() 运行(使用 oracle 内置 jvm)时,out_param 设置为 null(SQL_P 无异常执行,并且应设置输出参数)。

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

Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 用于测试的 64bi JRE 版本 1.4.2_04。JDBC 版本 10.2.0.3.0

@Juergen Hartelt 我的英语可能不足以清楚地解释这一点,但我会尝试这种方式:

1)我像往常一样使用我的IDE编写了一些java代码:

2)我运行这段代码——哇!有用

3)我变了

4)编译并加载类到oracle

5) 我已将 P141_JAVABridge.execute() 与 P141_JB

6) 然后我执行了 P141_JB

并得到 NullPointerException

0 投票
2 回答
3787 浏览

oracle - Java 存储过程是否比 Oracle 中的 PL/SQL 慢?

这是一个直截了当的问题:您知道 Java 存储过程在 Oracle 数据库中是否比 PL/SQL 慢?

我们将存储过程从 PL/SQL 迁移到 Java 只是为了对其进行基准测试,它所花费的时间大约是 PL/SQL 的两倍。这也是你的经历吗?

谢谢。

0 投票
1 回答
651 浏览

java - 如何使用 Java 存储过程显示表数据?

目前,我正在测试一些stored procedureson JAVAoracle db所以我尝试显示所有 emp 实体。

所以我的问题是如何通过 java 存储过程显示整个表?

这是我尝试过的:

我在这种方法中的问题是我不能使用System.out.println("");. 在此之后它什么也不显示:

提前致谢!

0 投票
2 回答
15331 浏览

java - 如何将 jar 文件包含到 Oracle 中的 Java 存储过程中?

我正在实现一个存储过程,现在需要能够将 jar 文件包含到我的存储过程中,这不属于 JRE 的标准部署。我怎样才能做到这一点?据我所知,Oracle 9 不可能......

感谢帮助!

0 投票
1 回答
5496 浏览

oracle - 从具有复杂输入和输出类型的 JDBC 调用 Oracle 存储过程

我非常接近解决这个问题,但我显然错过了一些东西。我的要求是从 JDBC 调用 Oracle 中的存储过程。存储过程将 1 个用户定义的 Oracle 对象作为输入,另一个用户定义的 Oracle 对象作为输出。输入和输出对象混合了原始 Oracle 数据类型和另一组用户定义对象的集合。只要我为 INput 和 OUTput 对象中的集合类型设置 NULL,我就能够成功地调用存储过程并取回结果。如果我尝试为 Oracle 对象列表创建 ArrayDescriptor 以将其发送到存储过程,我会一直遇到障碍。所以我需要帮助弄清楚如何将数组设置为输入对象并将其设置为 CallableStatement。请注意,我知道如何将原始类型和数组作为存储过程的直接输入发送。但我不想那样做,因为我们稍后必须向程序发送 10 个附加字段,我不想将它们添加到方法签名中。这是课程列表。此外,以下代码没有编译错误。

oracle中的包:

存储过程的输入对象

Array Object 作为 IInput Object 的一部分

输入对象的用户定义对象部分

TestDataINObj.java:

TestDataINObjConverter.java

实际执行对存储过程的调用的代码

其他: 1. 对象在 Schema 级别声明,可供 db 用户访问。2. 我没有在此处包含所有相应的 Java 对象,因为它会占用更多空间。它们实现 SQLData 接口,并且它们的类型名称与 DB 名称匹配。read 和 writeSQL 方法使用 getString、getArray 和相应的 setter 方法。

0 投票
1 回答
1072 浏览

stored-procedures - 将 Java 库与 DB2 Java 存储过程捆绑在一起

使用 IBM Data Studio 创建一个 DB2 Java 存储过程,我有一些类路径中需要的库。我在 VM 中运行 Data Studio,并在云实例中远程部署到我的 DB2 服务器。

如何将罐子与我的存储过程捆绑在一起?

0 投票
4 回答
3110 浏览

java - 尝试在 Oracle 11.2.0.2.0(64 位)中获取连接时出现 java.lang.ArithmeticException

我目前正在使用 Oracle 中的 Java 存储过程,并且在尝试在我的 Java 代码中建立连接时看到一些奇怪的行为。

我的 Java 被打包成一个 jar 文件,然后使用loadjava命令行实用程序部署到 Oracle 中。package然后在数据库中创建A ,它将指定 Java 类中的每个方法通过调用规范映射到 PL/SQL 函数。

我正在使用的一些列是CLOBs。在 Java 中,我尝试将 this 的值CLOB(在调用规范中映射为oracle.sql.CLOB)提取到 a中String

当我运行此代码时,我会在 SQL*Plus 中看到以下堆栈跟踪:

在我刚刚看到的消息之前,Exception我用 a 包装了有问题的方法的内容,try / catch这样我就可以将完整的堆栈跟踪转储到System.out.

值得注意的是,我已经在 Oracle 11.2.0.1.0 (32bit) 上运行了这个,但它不适用于 Oracle 11.2.0.2.0 (64bit)

我也有其他支持 Java 的 PL/SQLfunction正常工作。只有那些试图建立连接的人才会失败。

我看过了<ORACLE_HOME>\jdbc\lib,这些罐子虽然名称相同,但在这两个发行版中似乎有所不同。目录中的 jars 是(显示 11.2.0.1.0 大小和 11.2.0.2.0 大小):

  • ojdbc5.jar(1,950KB | 1,983KB)
  • ojdbc5_g.jar(3,010KB | 3,271KB)
  • ojdbc5dms.jar(2,374KB | 2,489KB)
  • ojdbc5dms_g.jar(3,030KB | 3,291KB)
  • ojdbc6.jar(2,062KB | 2,102KB)
  • ojdbc6_g.jar(3,323KB | 3,782KB)
  • ojdbc6dms.jar(2,594KB | 2,698KB)
  • ojdbc6dms_g.jar(3,344KB | 3,805KB)
  • simplefan.jar(20KB | 20KB) <-- 可能相同

这些 jar 的清单文件确认它们是为特定版本构建的,即 11.2.0.1.0 或 11.2.0.2.0。11.2.0.2.0 中是否可能引入了错误?还是更有可能是用户,即我的错误:-)

另外,oracle.jdbc.driver.T2SConnection班级住在哪里?

非常感谢任何帮助/指导。如果您需要更多信息,请告诉我。

0 投票
0 回答
230 浏览

oracle10g - 从存储过程中检索输出值 - GetColumn

我需要调用一个存储过程,它没有 OUT 参数,而是通过调用 putcolumn 写入缓冲区管理器。如何使用 JAVA 应用程序中的 put 列检索数据集。我的存储过程是一个预言机。有人可以提供您的输入来对我的问题进行排序吗?

0 投票
2 回答
1026 浏览

sql-server-2008 - 使用ms sql在表中插入逗号分隔值的存储过程?

我有一个名为 assignRole 的表。

我正在传递 userid (int) csv 字符串,并传递 roleid(int)。

我想要一个存储过程,它从字符串中拆分用户 ID 并获取角色 ID 并将这些值插入表中。这对用户 ID 字符串中的所有值都会发生。