【问题标题】:setting RAW datatype through prepared statement通过准备好的语句设置 RAW 数据类型
【发布时间】:2012-11-24 07:56:39
【问题描述】:

我在表中有一列的列名是INSTANCE_GUID 它的原始数据类型。

我正在编写一个准备好的语句选择查询并设置 INSTANCE_GUID

pstatement.setString(instanceGuid);

但是这是设置原始数据类型的正确方法吗?如果我应该使用 setByte,请告诉我如何设置原始数据类型?

谢谢

【问题讨论】:

标签: java database oracle jdbc


【解决方案1】:

Oracle JDBC Developer's guide and reference 11g中所述,当使用RAW列时,您可以将其视为BINARYVARBINARY JDBC类型,这意味着您可以使用JDBC标准方法getBytes()和@987654327 @ 返回或接受 byte[]setBytes() 将接受一个长数组(> 4000 字节)。

其他选项是使用 Oracle 驱动程序特定的扩展 getRAW() (oracle.jdbc.OracleResultSet) 和 setRAW() (oracle.jdbc.OraclePreparedStatement),它们返回或接受 oracle.sql.RAW。使用这两个将需要您解包和/或转换为特定的 Oracle 实现类。

要创建一个,只需致电new oracle.sql.RAW(byte[])

【讨论】:

  • 哪个接口定义了setRAW()
  • @AaronDigulla 它由oracle.jdbc.OraclePreparedStatement 定义(和getRAWoracle.jdbc.OracleResultSet 定义)
  • 谢谢,请验证我的编辑。我可以使用PreparedStatement.setBytes() 将13MB byte[] 数组插入到表中。这样一来,这种过时的数据类型就比 LOB 好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
相关资源
最近更新 更多