Java 通过prepared语句设置原始数据类型

Java 通过prepared语句设置原始数据类型,java,database,oracle,jdbc,Java,Database,Oracle,Jdbc,我在表中有一列,列名是INSTANCE\u GUID,它的原始数据类型 我正在编写一个准备好的语句select query to并设置实例\u GUID pstatement.setString(instanceGuid); 但是这是设置原始数据类型的正确方法吗?请告诉我如何设置我应该使用的原始数据类型 感谢如中所述,当使用RAW列时,您可以将其视为BINARY或VARBINARYJDBC类型,这意味着您可以使用JDBC标准方法getBytes()和setBytes()返回或接受byte[]s

我在表中有一列,列名是INSTANCE\u GUID,它的原始数据类型

我正在编写一个准备好的语句select query to并设置实例\u GUID

pstatement.setString(instanceGuid);
但是这是设置原始数据类型的正确方法吗?请告诉我如何设置我应该使用的原始数据类型

感谢如中所述,当使用
RAW
列时,您可以将其视为
BINARY
VARBINARY
JDBC类型,这意味着您可以使用JDBC标准方法
getBytes()
setBytes()
返回或接受
byte[]
setBytes()
将接受长数组(>4000字节)

其他选项是使用Oracle驱动程序特定扩展名
getRAW()
Oracle.jdbc.OracleResultSet
)和
setRAW()
Oracle.jdbc.OraclePreparedStatement
)返回或接受。使用这两个类需要您展开和/或强制转换到特定的Oracle实现类


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

下次,请确保包含此类信息。
RAW
已被弃用,您应该使用
BLOB
。哪个接口定义了
setRAW()
?@aarondigula它是由
oracle.jdbc.oraclepresparedstatement
定义的(和
oracle.jdbc.OracleResultSet
)谢谢,请验证我的编辑。我可以使用
PreparedStatement.setBytes()
将13MB的
字节[]
数组插入表中。这样,这种过时的数据类型比LOB更好。