701: )
702: AS
703: cursor_name INTEGER;
704: --TYPE VARCHAR2S IS TABLE OF VARCHAR2(256) INDEX BY BINARY_INTEGER;
705: l_query_lst dbms_sql.varchar2s;
706: l_qry_length1 NUMBER;
707: l_qry_length2 NUMBER;
708: l_qry_count1 NUMBER;
709: l_qry_count2 NUMBER;
762: l_query_lst(l_qry_count1 + i) := substr(l_QUERY_TEXT2,(((i-1)*256)+1),((i)*256));
763:
764: END LOOP;
765: l_qry_tot_count := l_qry_count1 + l_qry_count2;
766: cursor_name := dbms_sql.open_cursor;
767: dbms_sql.parse(cursor_name, l_query_lst, 1, l_qry_tot_count, NULL, dbms_sql.native);
768: dbms_sql.close_cursor(cursor_name);
769: ELSE
770: --Open the Cursor
763:
764: END LOOP;
765: l_qry_tot_count := l_qry_count1 + l_qry_count2;
766: cursor_name := dbms_sql.open_cursor;
767: dbms_sql.parse(cursor_name, l_query_lst, 1, l_qry_tot_count, NULL, dbms_sql.native);
768: dbms_sql.close_cursor(cursor_name);
769: ELSE
770: --Open the Cursor
771: cursor_name := dbms_sql.open_cursor;
764: END LOOP;
765: l_qry_tot_count := l_qry_count1 + l_qry_count2;
766: cursor_name := dbms_sql.open_cursor;
767: dbms_sql.parse(cursor_name, l_query_lst, 1, l_qry_tot_count, NULL, dbms_sql.native);
768: dbms_sql.close_cursor(cursor_name);
769: ELSE
770: --Open the Cursor
771: cursor_name := dbms_sql.open_cursor;
772: dbms_sql.parse(cursor_name, l_QUERY_TEXT1,dbms_sql.native);
767: dbms_sql.parse(cursor_name, l_query_lst, 1, l_qry_tot_count, NULL, dbms_sql.native);
768: dbms_sql.close_cursor(cursor_name);
769: ELSE
770: --Open the Cursor
771: cursor_name := dbms_sql.open_cursor;
772: dbms_sql.parse(cursor_name, l_QUERY_TEXT1,dbms_sql.native);
773: dbms_sql.close_cursor(cursor_name);
774: END IF;
775:
768: dbms_sql.close_cursor(cursor_name);
769: ELSE
770: --Open the Cursor
771: cursor_name := dbms_sql.open_cursor;
772: dbms_sql.parse(cursor_name, l_QUERY_TEXT1,dbms_sql.native);
773: dbms_sql.close_cursor(cursor_name);
774: END IF;
775:
776: CSM_UTIL_PKG.LOG
769: ELSE
770: --Open the Cursor
771: cursor_name := dbms_sql.open_cursor;
772: dbms_sql.parse(cursor_name, l_QUERY_TEXT1,dbms_sql.native);
773: dbms_sql.close_cursor(cursor_name);
774: END IF;
775:
776: CSM_UTIL_PKG.LOG
777: ( 'Leaving VALIDATE_QUERY for Query Id : ' || p_QUERY_ID ,'CSM_QUERY_PKG.VALIDATE_QUERY',
781: END IF;
782:
783: EXCEPTION WHEN OTHERS THEN
784: /*** catch and log exceptions ***/
785: dbms_sql.close_cursor(cursor_name);
786: CSM_UTIL_PKG.LOG
787: ( 'Exception occurred in VALIDATE_QUERY for Query Id : ' || p_QUERY_ID || SQLERRM, 'CSM_QUERY_PKG.VALIDATE_QUERY',
788: FND_LOG.LEVEL_EXCEPTION);
789: x_return_status := FND_API.G_RET_STS_ERROR;
858: FROM WF_PROCESS_ACTIVITIES
859: WHERE process_item_type =c_process_item_type
860: AND PROCESS_NAME ='ROOT';
861:
862: l_query_lst dbms_sql.varchar2s;
863: l_qry_length1 NUMBER;
864: l_qry_length2 NUMBER;
865: l_qry_count1 NUMBER;
866: l_qry_count2 NUMBER;
964:
965: IF UPPER(l_QUERY_TYPE) ='PROCEDURE' THEN
966:
967: G_INST_IN_PROCESS := p_INSTANCE_ID;
968: l_cursor_name := DBMS_SQL.OPEN_CURSOR;
969: l_procedure_stmt := 'BEGIN ' || l_PROCEDURE_NAME || '(' ;
970:
971: OPEN c_get_variables(p_USER_ID,p_QUERY_ID,p_INSTANCE_ID);
972: FETCH c_get_variables BULK COLLECT INTO l_variable_id_lst, l_var_value_char_lst, l_var_value_date_lst, l_var_type_lst, l_var_name_lst;
980: l_procedure_stmt := l_procedure_stmt || ':' || TO_CHAR(l_bind_count + 1) || ',';
981: l_procedure_stmt := l_procedure_stmt || ':' || TO_CHAR(l_bind_count + 2) || ',';
982: l_procedure_stmt := l_procedure_stmt || ':' || TO_CHAR(l_bind_count + 3) || '); END;';
983:
984: DBMS_SQL.PARSE (l_cursor_name, l_procedure_stmt, DBMS_SQL.NATIVE);
985:
986: FOR i IN 1..l_variable_id_lst.COUNT LOOP
987: IF UPPER(l_var_type_lst(i)) = 'DATE' THEN
988: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_date_lst(i));
984: DBMS_SQL.PARSE (l_cursor_name, l_procedure_stmt, DBMS_SQL.NATIVE);
985:
986: FOR i IN 1..l_variable_id_lst.COUNT LOOP
987: IF UPPER(l_var_type_lst(i)) = 'DATE' THEN
988: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_date_lst(i));
989: ELSE
990: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_char_lst(i));
991: END IF;
992: END LOOP;
986: FOR i IN 1..l_variable_id_lst.COUNT LOOP
987: IF UPPER(l_var_type_lst(i)) = 'DATE' THEN
988: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_date_lst(i));
989: ELSE
990: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_char_lst(i));
991: END IF;
992: END LOOP;
993:
994: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
990: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| i, l_var_value_char_lst(i));
991: END IF;
992: END LOOP;
993:
994: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
995: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status,4000);
996: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message,4000);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
991: END IF;
992: END LOOP;
993:
994: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
995: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status,4000);
996: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message,4000);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
992: END LOOP;
993:
994: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
995: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status,4000);
996: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message,4000);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
994: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
995: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status,4000);
996: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message,4000);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
1001: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status);
1002: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message);
996: DBMS_SQL.BIND_VARIABLE (l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message,4000);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
1001: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status);
1002: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message);
1003:
1004: DBMS_SQL.CLOSE_CURSOR (l_cursor_name);
997:
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
1001: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status);
1002: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message);
1003:
1004: DBMS_SQL.CLOSE_CURSOR (l_cursor_name);
1005: x_error_message := l_return_message;
998: l_cursor_ret := DBMS_SQL.EXECUTE ( l_cursor_name );
999:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
1001: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status);
1002: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message);
1003:
1004: DBMS_SQL.CLOSE_CURSOR (l_cursor_name);
1005: x_error_message := l_return_message;
1006:
1000: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 1), l_xml);
1001: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 2), l_return_status);
1002: DBMS_SQL.VARIABLE_VALUE(l_cursor_name, ':'|| TO_CHAR(l_bind_count + 3), l_return_message);
1003:
1004: DBMS_SQL.CLOSE_CURSOR (l_cursor_name);
1005: x_error_message := l_return_message;
1006:
1007: IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1008: UPDATE_EXE_STATUS( p_USER_ID, p_QUERY_ID, p_INSTANCE_ID,
1441: )
1442: AS
1443: cursor_name INTEGER;
1444: TYPE TABLE_TYPE IS TABLE OF VARCHAR2(256) INDEX BY BINARY_INTEGER;
1445: l_query_lst dbms_sql.varchar2s;
1446: l_qry_length1 NUMBER;
1447: l_qry_length2 NUMBER;
1448: l_qry_count1 NUMBER;
1449: l_qry_count2 NUMBER;