Doesn't NHibernate (3.0.0.Beta1) support deleting (or updating, which
results in delete and insert) composite-elements, that have Clob
properties, in sets with an Oracle DB?
(The same should be true for simply using Clobs in a where clause of a
query, but I didn't try this.)

I'm using the Oracle10g dialect with the ODAC 11.2.0.1.2 driver on a
11.2.0.1.0 DB.

The generated SQL is the following:

DELETE
    FROM
        WORKFLOWBEDINGUNGEN
    WHERE
        WOF_ID = :p0
        AND BEDINGUNGSFELD = :p1
        AND WERT1 = :p2
        AND WERT2 = :p3
        AND BEDINGUNG = :p4
        AND WOF_CODE = :p5;
:p0 = 241 [Type: Int64 (0)], :p1 = 'Bedingung' [Type: String (0)], :p2
= 'Wert1' [Type: String (0)], :p3 = 'Wert2' [Type: String (0)], :p4 =
'EGAL' [Type: String (0)], :p5 = 1 [Type: Int32 (0)]

The columns WERT1 and WERT2 are Clobs.
The statement fails with the exception
"Oracle.DataAccess.Client.OracleException ORA-00932: inconsistent
datatypes: expected - got CLOB".

I seems like you can't compare Clobs in Oracle using the "=" operator,
this doesn't work in SqlPlus too. At least in plain SQL, Google
searching says it should work in PL/SQL.

Is this a limitation of NHibernate?
If yes, is it possible to extend NHibernate somewhere to fix this? For
example by using "dbms_lob.compare()" instead of "=" for comparison of
Clobs?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to