通过准备好的语句设置RAW数据类型

con*_*ner 4 java database oracle jdbc

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

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

pstatement.setString(instanceGuid);
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Mar*_*eel 5

如Oracle JDBC 开发人员指南和参考 11g中所述,使用RAW列时,您可以将其视为BINARYVARBINARYJDBC 类型,这意味着您可以使用 JDBC 标准方法,getBytes()并且setBytes()返回或接受byte[]. setBytes()将接受长数组(> 4000 字节)。

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

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