197:
198: if (i_stack_var) then
199: /** Change required for Clob Support -- 2263729 ***/
200: /*** Change Storing CLOB as a varchar2***/
201: ecx_utils.g_stack(i_stack_pos).variable_value := dbms_lob.substr(i_c_value,
202: ecx_utils.G_VARCHAR_LEN ,1);
203: else
204: /* Based on the direction look into either Source or Target Struct */
205: if ( i_direction = 'S' )
484: end if;
485:
486: EXCEPTION
487: WHEN others then
488: if dbms_lob.istemporary(l_clob_value) = 1 Then
489: dbms_lob.freetemporary(l_clob_value);
490: end if;
491:
492: raise l_data_conversion_failed;
485:
486: EXCEPTION
487: WHEN others then
488: if dbms_lob.istemporary(l_clob_value) = 1 Then
489: dbms_lob.freetemporary(l_clob_value);
490: end if;
491:
492: raise l_data_conversion_failed;
493: END;
494:
495: end if;
496: exit when k = ecx_utils.g_target_levels(p_level).file_end_pos;
497: k := ecx_utils.g_target.next(k);
498: if dbms_lob.istemporary(l_clob_value) = 1 Then
499: dbms_lob.freetemporary(l_clob_value);
500: end if;
501:
502: end loop;
495: end if;
496: exit when k = ecx_utils.g_target_levels(p_level).file_end_pos;
497: k := ecx_utils.g_target.next(k);
498: if dbms_lob.istemporary(l_clob_value) = 1 Then
499: dbms_lob.freetemporary(l_clob_value);
500: end if;
501:
502: end loop;
503:
505: if (l_dummy <> 1) then
506: raise l_insert_failed;
507: end if;
508:
509: if dbms_lob.istemporary(l_clob_value) = 1 Then
510: dbms_lob.freetemporary(l_clob_value);
511: end if;
512:
513: if (l_procedureEnabled) then
506: raise l_insert_failed;
507: end if;
508:
509: if dbms_lob.istemporary(l_clob_value) = 1 Then
510: dbms_lob.freetemporary(l_clob_value);
511: end if;
512:
513: if (l_procedureEnabled) then
514: ecx_debug.pop(i_method_name);
1627: if(l_statementEnabled) then
1628: ecx_debug.log(l_statement,'Bind variable is in source',i_method_name);
1629: end if;
1630: if (l_clob_value is null) then
1631: dbms_lob.createtemporary(l_clob_value,true,dbms_lob.session);
1632: end if;
1633: l_clob_value := ecx_utils.g_source(ecx_utils.g_procedure_mappings(i).variable_pos).clob_value;
1634: l_var_value := ecx_utils.g_source(ecx_utils.g_procedure_mappings(i).variable_pos).value;
1635:
1633: l_clob_value := ecx_utils.g_source(ecx_utils.g_procedure_mappings(i).variable_pos).clob_value;
1634: l_var_value := ecx_utils.g_source(ecx_utils.g_procedure_mappings(i).variable_pos).value;
1635:
1636: if ecx_utils.g_procedure_mappings(i).data_type <> 112 then
1637: l_len := dbms_lob.getlength(l_clob_value) ;
1638: if (l_clob_value is not null and
1639: ( l_len > ecx_utils.G_VARCHAR_LEN)) then
1640: get_varchar(l_clob_value ,
1641: l_var_value,
1657: if(l_statementEnabled) then
1658: ecx_debug.log(l_statement,'Bind variable is in target',i_method_name);
1659: end if;
1660: if (l_clob_value is null) then
1661: dbms_lob.createtemporary(l_clob_value,true,dbms_lob.session);
1662: end if;
1663:
1664: l_clob_value := ecx_utils.g_target(ecx_utils.g_procedure_mappings(i).variable_pos).clob_value;
1665: l_var_value := ecx_utils.g_target(ecx_utils.g_procedure_mappings(i).variable_pos).value;
1664: l_clob_value := ecx_utils.g_target(ecx_utils.g_procedure_mappings(i).variable_pos).clob_value;
1665: l_var_value := ecx_utils.g_target(ecx_utils.g_procedure_mappings(i).variable_pos).value;
1666:
1667: if ecx_utils.g_procedure_mappings(i).data_type <> 112 then
1668: l_len := dbms_lob.getlength(l_clob_value) ;
1669: if (l_clob_value is not null and
1670: (l_len > ecx_utils.G_VARCHAR_LEN)) then
1671: get_varchar(l_clob_value ,
1672: l_var_value,
1754: ecx_debug.setErrorInfo(2,30,'ECX_UNSUPPORTED_DATATYPE');
1755: raise ecx_utils.program_exit;
1756: end if;
1757: end if;
1758: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1759: dbms_lob.freetemporary(l_temp_loc);
1760: end if;
1761: if dbms_lob.istemporary(l_clob_value) = 1 Then
1762: dbms_lob.freetemporary(l_clob_value);
1755: raise ecx_utils.program_exit;
1756: end if;
1757: end if;
1758: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1759: dbms_lob.freetemporary(l_temp_loc);
1760: end if;
1761: if dbms_lob.istemporary(l_clob_value) = 1 Then
1762: dbms_lob.freetemporary(l_clob_value);
1763: end if;
1757: end if;
1758: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1759: dbms_lob.freetemporary(l_temp_loc);
1760: end if;
1761: if dbms_lob.istemporary(l_clob_value) = 1 Then
1762: dbms_lob.freetemporary(l_clob_value);
1763: end if;
1764: end loop;
1765: end if;
1758: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1759: dbms_lob.freetemporary(l_temp_loc);
1760: end if;
1761: if dbms_lob.istemporary(l_clob_value) = 1 Then
1762: dbms_lob.freetemporary(l_clob_value);
1763: end if;
1764: end loop;
1765: end if;
1766: if(l_statementEnabled) then
1769: l_numrows := dbms_sql.execute (p_proc_cursor);
1770: if(l_statementEnabled) then
1771: ecx_debug.log(l_statement,'after execute procedure',i_method_name);
1772: end if;
1773: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1774: dbms_lob.freetemporary(l_temp_loc);
1775: end if;
1776: if dbms_lob.istemporary(l_clob_value) = 1 Then
1777: dbms_lob.freetemporary(l_clob_value);
1770: if(l_statementEnabled) then
1771: ecx_debug.log(l_statement,'after execute procedure',i_method_name);
1772: end if;
1773: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1774: dbms_lob.freetemporary(l_temp_loc);
1775: end if;
1776: if dbms_lob.istemporary(l_clob_value) = 1 Then
1777: dbms_lob.freetemporary(l_clob_value);
1778: end if;
1772: end if;
1773: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1774: dbms_lob.freetemporary(l_temp_loc);
1775: end if;
1776: if dbms_lob.istemporary(l_clob_value) = 1 Then
1777: dbms_lob.freetemporary(l_clob_value);
1778: end if;
1779: if (l_procedureEnabled) then
1780: ecx_debug.pop(i_method_name);
1773: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1774: dbms_lob.freetemporary(l_temp_loc);
1775: end if;
1776: if dbms_lob.istemporary(l_clob_value) = 1 Then
1777: dbms_lob.freetemporary(l_clob_value);
1778: end if;
1779: if (l_procedureEnabled) then
1780: ecx_debug.pop(i_method_name);
1781: end if;
1781: end if;
1782:
1783: EXCEPTION
1784: WHEN ecx_utils.PROGRAM_EXIT then
1785: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1786: dbms_lob.freetemporary(l_temp_loc);
1787: end if;
1788: if dbms_lob.istemporary(l_clob_value) = 1 Then
1789: dbms_lob.freetemporary(l_clob_value);
1782:
1783: EXCEPTION
1784: WHEN ecx_utils.PROGRAM_EXIT then
1785: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1786: dbms_lob.freetemporary(l_temp_loc);
1787: end if;
1788: if dbms_lob.istemporary(l_clob_value) = 1 Then
1789: dbms_lob.freetemporary(l_clob_value);
1790: end if;
1784: WHEN ecx_utils.PROGRAM_EXIT then
1785: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1786: dbms_lob.freetemporary(l_temp_loc);
1787: end if;
1788: if dbms_lob.istemporary(l_clob_value) = 1 Then
1789: dbms_lob.freetemporary(l_clob_value);
1790: end if;
1791: if (l_procedureEnabled) then
1792: ecx_debug.pop(i_method_name);
1785: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1786: dbms_lob.freetemporary(l_temp_loc);
1787: end if;
1788: if dbms_lob.istemporary(l_clob_value) = 1 Then
1789: dbms_lob.freetemporary(l_clob_value);
1790: end if;
1791: if (l_procedureEnabled) then
1792: ecx_debug.pop(i_method_name);
1793: end if;
1799: 'PROGRESS_LEVEL','ECX_ACTIONS.BIND_PROC_VARIABLES');
1800: ecx_debug.log(l_unexpected,'ECX','ECX_ERROR_MESSAGE',i_method_name,'ERROR_MESSAGE',SQLERRM);
1801: end if;
1802: ecx_debug.setErrorInfo(2,30,SQLERRM||' - ECX_ACTIONS.BIND_PROC_VARIABLES');
1803: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1804: dbms_lob.freetemporary(l_temp_loc);
1805: end if;
1806: if dbms_lob.istemporary(l_clob_value) = 1 Then
1807: dbms_lob.freetemporary(l_clob_value);
1800: ecx_debug.log(l_unexpected,'ECX','ECX_ERROR_MESSAGE',i_method_name,'ERROR_MESSAGE',SQLERRM);
1801: end if;
1802: ecx_debug.setErrorInfo(2,30,SQLERRM||' - ECX_ACTIONS.BIND_PROC_VARIABLES');
1803: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1804: dbms_lob.freetemporary(l_temp_loc);
1805: end if;
1806: if dbms_lob.istemporary(l_clob_value) = 1 Then
1807: dbms_lob.freetemporary(l_clob_value);
1808: end if;
1802: ecx_debug.setErrorInfo(2,30,SQLERRM||' - ECX_ACTIONS.BIND_PROC_VARIABLES');
1803: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1804: dbms_lob.freetemporary(l_temp_loc);
1805: end if;
1806: if dbms_lob.istemporary(l_clob_value) = 1 Then
1807: dbms_lob.freetemporary(l_clob_value);
1808: end if;
1809: if (l_procedureEnabled) then
1810: ecx_debug.pop(i_method_name);
1803: if dbms_lob.istemporary(l_temp_loc) = 1 Then
1804: dbms_lob.freetemporary(l_temp_loc);
1805: end if;
1806: if dbms_lob.istemporary(l_clob_value) = 1 Then
1807: dbms_lob.freetemporary(l_clob_value);
1808: end if;
1809: if (l_procedureEnabled) then
1810: ecx_debug.pop(i_method_name);
1811: end if;
5642: ecx_debug.push(i_method_name);
5643: end if;
5644: if (clobValue is not null) or
5645: (value is not null ) Then
5646: dbms_lob.createtemporary(clobOut,true,dbms_lob.session);
5647: if (value is not null) then
5648: dbms_lob.write(clobOut ,length(value),1,value );
5649: elsif (clobValue is not null) then
5650: clobOut := clobValue;
5644: if (clobValue is not null) or
5645: (value is not null ) Then
5646: dbms_lob.createtemporary(clobOut,true,dbms_lob.session);
5647: if (value is not null) then
5648: dbms_lob.write(clobOut ,length(value),1,value );
5649: elsif (clobValue is not null) then
5650: clobOut := clobValue;
5651: end if;
5652: end if;
5681: end if;
5682: if (value is not null) then
5683: valueOut := substr(value , 1, ecx_utils.G_VARCHAR_LEN);
5684: elsif (clobValue is not null) then
5685: valueOut := dbms_lob.substr(clobValue,ecx_utils.G_VARCHAR_LEN,1);
5686: end if;
5687: if (l_procedureEnabled) then
5688: ecx_debug.pop(i_method_name);
5689: end if;