2012-12-06 30 views
2

我在表列名中有一列是INSTANCE_GUID的原始數據類型。通過準備語句設置RAW數據類型

我寫一份聲明中選擇查詢並設置INSTANCE_GUID

pstatement.setString(instanceGuid); 

但是,這是設置原始數據type.Please讓我知道如何設置RAW數據類型,我應該使用setByte的正確方法?

由於

+0

'setObject()'? – 2012-12-06 09:59:13

+0

什麼是原始數據類型? –

+0

http://www.adp-gmbh.ch/ora/misc/datatypes/raw.html – constantlearner

回答

3

Oracle JDBC Developer's guide and reference 11g所描述的,使用RAW列時,就可以把它作爲一個BINARYVARBINARY JDBC類型,這意味着可以使用JDBC標準方法getBytes()setBytes()返回或接受byte[]setBytes()將接受一個長陣列(> 4000字節)。

其他選項是使用Oracle驅動程序的特定擴展getRAW()oracle.jdbc.OracleResultSet)和setRAW()oracle.jdbc.OraclePreparedStatement),它返回或接受oracle.sql.RAW。使用這兩個將需要您解包和/或轉換爲特定的Oracle實現類。

要創建一個,請致電new oracle.sql.RAW(byte[])

+0

哪個接口定義'setRAW()'? –

+0

@AaronDigulla它由'oracle.jdbc.OraclePreparedStatement'(和''oracle.jdbc.OracleResultSet''設置'getRAW') –

+0

謝謝,請驗證我的編輯。我可以使用'PreparedStatement.setBytes()'將13MB'byte []'數組插入表中。這樣,這種過時的數據類型比LOB好。 –