Oracle RAW datatype should be BLOB (Oracle Express 10g)


The DDL generated for a byte array for Oracle version 10g Express was mapped to "RAW". This causes the CreateTable to fail with a message about missing right parens. I tested the DDL generated by Retina in ORacle 10g express, and it fails in the command windows.
I changed my copy of the Oracle DataStore code to output BLOB instead of RAW, and now it works fine. I can save images and other binary data in Oracle.
Changes suggested:
Oracle9DataStoreBuilder Line: 345: Change "RAW" to "BLOB"
Oracle9EntityPersister Line: 219: Change from OracleType.Raw to OracleType.Blob
Oralce9EntityPersisterSP Line: 133: Change from OracleType.Raw to OracleType.Blob
Hope that helps. I think this is an AWESOME piece of code. I love the architecture and features..


andresv wrote Dec 23, 2008 at 11:02 PM

I guess that was a typo and the native Oracle data type intended was "LONG RAW", not just "RAW".
Anyway, "LONG RAW" is now deprecated and using "BLOB" is the right thing to do.
I will make those changes but I think there are some other changes needed, because there is no .NET native data type mapped to "BLOB" (LONG RAW mapped to byte[]) and you have to use an "OracleBlob" class (or something like that) as the value for a query parameter or query execution result.
Let me check that and I will get back to you.
Thanks for your time, and Marry Christmas,

wrote Feb 13, 2013 at 4:50 AM