当前位置: 首页 > 知识库问答 >
问题:

如何将PL/SQL号读入JavaResultSet?

顾承平
2023-03-14

我们的PL/SQL数据库有三个数字变量,分别表示确切的日期、月份和年份。

我想在Java中将这些值读入一个字符串来显示,但是rs.getString(“[Number_字段]”)会显示一个“Invalid Column Name”异常,而rs.getInt(“[Number_字段]”)会执行相同的操作(见下面的代码段)。而且,因为单词“number”被用来描述编码历史上创建的每一个字符串转换,所以我不可能找到一个正确函数的引用来用于我的结果集。

String sDate1= rs.getString("DATE_MNTH")+"/"+rs.getString("DATE_DT"+"/"+rs.getString("DATE_YEAR"));

Date date=new SimpleDateFormat("MM/DD/yyyy").parse(sDate1);  

从结果集中读取PL/SQL编号的正确方法是什么?

共有3个答案

蒙麒
2023-03-14

你的陈述中有一个拼写错误:

rs.getString(“DATE_MNTH”)/“rs.getString(“DATE_DT”“/”rs.getString(“DATE_YEAR”));

你把日期栏的“结束语”放错了。

在现实中,你试图从RS中得到两列:

DATE_MNTH and
result of concatenation which looks like: DATE_DT/{whatever rs.getString("DATE_YEAR") has} ...

例如“日期_DT/2019”

我很确定结果集中没有“DATE_DT/2019”这样的栏。。。例外告诉你这一点。

顺便说一句:没有像“PL/SQL数据库”(它是Oracle数据库)这样的东西,术语“变量”的含义与“列”完全不同。。。

权韬
2023-03-14

这实际上是我在结果集中返回这些列时的一个错误——也就是说,我忘了将它们添加到查询中!

一旦我添加了它们,使它们实际上成为结果集的一部分,我发现rs.getString()工作得非常好——就像rs.getInt()和Tim Biegleisen建议的rs.getBigDecimal()一样。

感谢Ivan在评论中让我重新阅读出现的错误消息,并让我思考为什么列名称无效。

蓬运诚
2023-03-14

根据Oracle JDBC映射表,Oracle的NUMBER类型(这是一个精确的类型)映射到Java的BigDecimal。因此,您可以尝试使用ResultSet#getBigDecimal

String day = rs.getBigDecimal("day_field");
String month = rs.getBigDecimal("month_field");
String year = rs.getBigDecimal("year_field");

String output = year + "-" + month + "-" + day;

但是,您可能需要重新考虑您当前的数据库设计。有什么原因不将所有这些信息存储在一个日期或时间戳字段中吗?如果您这样做了,您可以从结果集中检索一个日期字段,从而完全避免这个问题。

 类似资料:
  • 我是pl/sql编程新手,我需要你的帮助。 我想做个手术。 更具体地说,我有如下表1 对于相同的COL1和COL2/COL3,请检查从COL4中选择不同的值,例如COL1=600、COL2=140/COL3=2和COL2=150/COL3=3返回20和35 并在此表TABLE1中插入行 如果P_FLG1='Y',我在表1中插入。如果P_FLG2='Y',我也在表3等中插入 我正在试着做下面的程序,

  • 尽管我仔细检查了代码,但还是出现了以下错误。我不知道我错过了什么。 行/列错误 31/1 PLS-00103:在期望以下之一时遇到符号“END”: 代码:

  • 我在Oracle数据库中有一个过程,其中有一个数组作为输出参数。在这个过程中,我将所有球队及其得分放入一个数组中。 但是当我尝试用PHP调用这个过程时,我总是会遇到这样的错误: PLS-00306:调用RETRIEVE_RANKING的参数的数量或类型错误 这是我的PHP代码的一部分: 如果我将OUT参数更改为VARCHAR2进行测试,我可以读取结果。但是如果它是一个数组,我就无法使其工作。 所以

  • 问题内容: 从PL / SQL到Java来回传递数字和字符串没有问题,但是如何传递 数组 ?我从PL / SQL调用Java-并非如此。 下面是一个按预期工作的示例。如何编写PL / SQL 调用规范 ,以便可以从PL / SQL调用它? 我已经阅读了《发布带有调用规范的Java类》,其中可以看到嵌套表与相对应,但是我无法使其工作。我可能缺少一些琐碎的细节,因为我不是Java程序员。 问题答案:

  • 我甚至尝试过直接分配 得到同样的结果。 编辑

  • 问题内容: 我在pl / sql中的指定位置将xmltype插入另一个xmltype时遇到问题。 第一个变量v_xml的格式为: 第二个v_xml2: 我的目的是得到这样的东西: 我应该如何处理我的代码? 有人能帮助我解决这个问题吗?据我所知,有诸如insertchildxml,appendchildxml之类的功能或类似的功能……我在纯SQL中找不到很少的解决方案,但是我不知道如何在PL / S