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

java - Oracle Java 存储库无法编译

我希望将 Java 库存储在我的 Oracle 数据库中。请注意,这是我第一次这样做。该库是pd4ml。它由两个 jar 组成,其中包含已编译的类。

  • pd4ml.jar
  • ss_css2.jar(pd4ml.jar 需要)

由于用 Toad 加载它们不起作用(Toad 说它们已成功加载,但它们没有出现在任何地方)我去了命令行(loadjava)并成功加载ss_css2.jar。它的所有类都被加载和编译。

第二个库pd4ml.jar也已加载,但有几个类无法编译。我运行 ojvmtc 来尝试解析引用。我收到以下消息:

找不到以下类:

javax/servlet/http/HttpServletResponseWrapper

org/zefer/pd4ml/npdf/parser/c

第一个,如果我的理解正确的话,应该是11g r2内置的JRE的一部分。浏览sys架构,它似乎不存在。

第二个是 jar 库的一部分。现在我不太确定编译后的 Java 的结构,我以前从来没有研究过它,但是我里面有几个 .class 文件org/zefer/pd4ml/npdf/parser/,它们是: c$_b, c$_c.... to c$_g. 没有唯一的c

当传递命令行参数或从 Eclipse 运行它时,该库在我的本地机器上运行良好,因此它应该可以工作。尝试在 Toad 中编译它们时没有显示特定的错误消息。我觉得这是一个依赖项/类路径问题。

关于我应该如何确保包含的类pd4ml.jar可以正确访问那些的任何提示ss_css2.jar,或任何潜在的调查原因?也许是一种从 Java 代码中获取详细错误消息的方法?

0 投票
1 回答
1907 浏览

java - 处理 Oracle DB 存储的 Java 类中的异常

当存储的 Java 类遇到未处理的异常时,将完整堆栈跟踪返回到 PL/SQL 以进行正确日志记录的最佳方法是什么?

在我的课程的初步测试中,我遇到了 NullPointer,Oracle 将其显示为未处理的 Java 异常。我得到的唯一信息是它是一个 NullPointer——我不知道它在代码中的位置。

显然,我应该能够通过严格验证客户端提供的数据和单元测试来避免大多数异常,但万一发生了什么?

我正在考虑捕获异常,将它们的堆栈跟踪存储在一个数组中并将该数组返回给 PLSQL ......但我宁愿避免需要管理所有这些额外的返回值。

肯定已经有一些东西了,不幸的是我的谷歌fu让我失望了......

0 投票
4 回答
514 浏览

java - 通过java连接MySQL RDBMS

我需要使用 java 将 z/OS 上的现有 cobol 应用程序连接到远程 MySQL 数据库。我阅读了存储过程方法,但没有清楚地了解架构。您能否分享您对 cobol-java-MySQL 存储过程连接方法的想法?

0 投票
1 回答
290 浏览

java - 用作 Oracle 函数的 Java 静态方法

我对 Java 开发和 Oracle 也很陌生,但我正在学习。

我的问题如下,我在 .net 中创建了一个 dll 并将其用作 MSSqlServer 中的自定义函数,基本上这个库充当 SOAP 网关,让我只需使用这样的 SELECT 即可调用 Web 服务(在 GET 和 POST 中)

现在,我想做同样的事情,但将 Java 用于 Oracle。出于测试目的,我创建了“SoapGateway”类,它公开了两个静态方法:

  • 1) public statis String GetData() <- 它只返回一个字符串,看看所有的东西都运行良好..

  • 2) public static String MakeWebRequest(String username, String password, String method, String url, String path, String envelope) <- 调用网络服务

第二步是用Oracle java编译器编译所有东西,所以java版本不会有问题:完成!

现在第三步:使用这样的简单代码将 Oracle 函数绑定到 java 类

创建或替换函数 fn_SoapGateway_GetData RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'SoapGateway.GetData() return java.lang.String'; 犯罪;

最后,使用此选择测试简单的函数 GetData

像魅力一样工作!它返回我的自定义字符串。

现在,我终于可以问你我的问题了:

1) 我应该在Oracle中写什么来绑定函数“MakeWebRequest”并在Oracle中创建函数?

2) 将“字符串”作为信封发送并返回“字符串”是否正确,还是应该使用更大的数据类型?如果有,是哪种数据类型?你能帮我更正我的代码吗?一旦它工作,我可以分享一切

3) 如何从 Oracle 正确调用该函数以获取作为 XML 变量的响应?

非常感谢您的帮助!告诉我我是否有不清楚的地方!(((:

----------------------- UPDATEEEEE -------------- ---

好的,伙计们,现在步骤 2.0 .. 我从 Java 中获得了我想要的结果,我使用了 java.sql.Clob,一切似乎都很好..

所以,我在 Eclipse 中进行了测试,称为 SoapGateway.MakeWebRequest(.....),一切看起来都很完美!远程主机使用我的 Get 方法的 xml 回复。--> 好的

现在,我使用 loadjava -schema bla bla bla 将 java 类加载到 oracle 服务器中 --> ok

然后,从企业管理器编译它 --> ok

然后,创建了一个这样的函数

--> 好的!

最后..用以下方式调用它:

ORA-29532: Chiamata java terminata a causa di un'eccezione Java non ottenuta: java.lang.NullPointerException(Java 调用因空指针异常而终止)--> KO!!

现在,任何关于为什么在 Eclipse 上像魅力一样工作并且从 Oracle 产生这样的错误的想法?难道我做错了什么?

太感谢了!

L.

0 投票
1 回答
994 浏览

derby - java.sql.SQLSyntaxErrorException:类“TempSP”不存在或不可访问

我正在尝试使用 java 在 derby 数据库中创建存储过程。

TempSP.java 代码:-

但是当我运行我的 TestDrive.java 文件时,它会给我以下错误:-

德比存储过程代码如下:-

0 投票
1 回答
816 浏览

sql - SQL - 创建具有多个可选参数的存储过程

我正在尝试在存储过程(SQL Server 2012)中创建可选参数,这将允许用户选择以下内容。

参考编号范围 - 见表 2 -(可选)

客户编号范围 - 保留在表 3 中 - (可选)

A 日期范围 - 保留在表 4 中 - (强制)

必须输入参考编号或客户编号

到目前为止我有这个

目前遇到一些问题。

不起作用的第一件事是我可以在 Reference 和 CustomerNumber 中都有空值,我仍然会根据日期范围返回数据,

不起作用的第二件事是,当我输入 CustomerNumber 范围时,它会返回指定范围之外的 CustomerNumers。

如果有人可以提供帮助,我真的很想解决这个问题

谢谢

0 投票
1 回答
766 浏览

jpa - 在 oracle JPA () 中检索光标

我无法使用 JPA @StoredProcedureQuery 或 @StoredNamedProcedureQuery 从 oracle 中的过程中检索数据

PL/SQL

然后在java中

我得到下一个错误

我也试过

一些忠告??

0 投票
2 回答
973 浏览

java - 将退出代码从 Java 返回到 PL/SQL

我正在尝试将退出代码从 Java 方法返回到 PL/SQL。似乎总是有例外。我怎样才能找出异常 n 是什么。我在 12c 上运行。

以下是尝试调用该方法的结果。

0 投票
1 回答
809 浏览

java - JDBC存储过程调用

我创建了一个存储过程,如下所示:

//mysql中的存储过程

我在java中调用存储过程如下:

//使用JDBC调用存储过程

但它显示编译时异常,如下所示:

可以为存储函数调用的返回值设置 IN 参数。

0 投票
2 回答
2970 浏览

java - Implementing Java stored procedure IBM DB2 for i (AS400)

I created the Java stored procedure as follows, able to generate a .class file using AS400 Qshell command interpreter.

created the respective store procedure as

When the procedure is getting called (Using callable Statement in JAVA) it gives below error as

Placed the .class file in the QIBM\UserData\OS400\SQLLib\Function directory.

Any suggestions on how to solve this?