diff --git a/symmetric/src/changes/changes.xml b/symmetric/src/changes/changes.xml index 08131e8f6e..644e515c07 100644 --- a/symmetric/src/changes/changes.xml +++ b/symmetric/src/changes/changes.xml @@ -30,6 +30,10 @@ Support an initial load pushed from client to server. + + Inactivating a sym_trigger by setting the inactive_time column to a non-null value + was fixed. + Fixed null pointer for blank my.url property. We now default my.url to blank in symmetric-default.properties. @@ -66,7 +70,7 @@ Added a new plug-in point, the IBatchListener. This new interface gives the end user a chance to do - something with a group of data rows that are in the same batch. See XmlPublisher for an usage example. + something with a group of data rows that are in the same batch. See XmlPublisherFilter for an usage example. Added a new plug-in point, the IExtractorFilter. This new filter can be useful to capture and react to @@ -77,7 +81,7 @@ Don't include the keys in data loader update statement if they haven't changed. This feature is turned - off by default and can be enabled by the new symmetric.runtime.dont.include.keys.in.update.statement + off by default and can be enabled by the new dont.include.keys.in.update.statement parameter. diff --git a/symmetric/src/main/resources/dialects/oracle.xml b/symmetric/src/main/resources/dialects/oracle.xml index d3647bbc9e..e607c47de3 100644 --- a/symmetric/src/main/resources/dialects/oracle.xml +++ b/symmetric/src/main/resources/dialects/oracle.xml @@ -33,14 +33,16 @@ v_buffer PLS_INTEGER := 999; BEGIN IF blob_in IS NOT NULL THEN - DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); - FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) - LOOP - v_varchar := UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.base64_encode(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start))); - v_varchar := REPLACE(v_varchar,CHR(13)||CHR(10)); - DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar); - v_start := v_start + v_buffer; - END LOOP; + IF DBMS_LOB.GETLENGTH(blob_in) > 0 THEN + DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); + FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) + LOOP + v_varchar := UTL_RAW.CAST_TO_VARCHAR2(UTL_ENCODE.base64_encode(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start))); + v_varchar := REPLACE(v_varchar,CHR(13)||CHR(10)); + DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar); + v_start := v_start + v_buffer; + END LOOP; + END IF; END IF; RETURN v_clob; END fn_sym_blob2clob;