Java ResultSet 方法获取 Oracle RAW 类型

Posted

技术标签:

【中文标题】Java ResultSet 方法获取 Oracle RAW 类型【英文标题】:Java ResultSet Method to Get Oracle RAW Type 【发布时间】:2017-05-03 23:32:55 【问题描述】:

我有一个由选择查询返回到 Oracle 数据库的结果集。返回的行之一是RAW 类型。根据我从Database JDBC Developer's Guide 中得知的信息,RAW 映射到Java 的byte[] 类型,这表明我应该使用ResultSet's getBytes() method。这是我第一次使用Oracle 的RAW 类型,我想知道getBytes() 是否确实是要走的路,或者是否另一种检索方法(getBytes() 除外)是更合适的选择。我试过谷歌搜索并搜索其他 SO 问题,其中一些似乎建议 getBytes(),但没有确定的。谢谢。

【问题讨论】:

为什么不写一些代码试试看呢? 我做到了,没关系。只是想知道是否有更好的解决方案。 您已经从权威来源获得了答案,即文档。你还期待什么? @MarkRotteveel 我听到你在说什么,但我只是希望看看是否有更好的方法。此外,虽然来源是权威的,但我认为“答案”不是。 【参考方案1】:

由于 RAW 只能包含 2000 字节的数据(根据 oracle documentation),您可以使用 getBytes() 安全地检索它。也可以使用 getBinaryStream() 进行处理 - 但鉴于内存占用相对较小,我建议不要这样做。

【讨论】:

以上是关于Java ResultSet 方法获取 Oracle RAW 类型的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Java 中使用 ResultSet 获取行数?

java中如何获取ResultSet rs结果集中的条数?

java中如何获取ResultSet rs结果集中的条数?

java 此类旨在将作为Db查询结果获取的ResultSet数据转换为JSON。还可以使用其他转换器方法

java获取查询语句中的表名 ,或者是查询resultSet里每个列对应的表名

我可以在 Java 中使用 resultset.getBoolean 在 SQL 中获取 Tinyint