The following lines contain the word 'select', 'insert', 'update' or 'delete':
FUNCTION search_delimiter_select ( p_input_str varchar2, p_start number)
RETURN number IS
l_position_min NUMBER ;
IF sql_type = 'SELECT'
THEN
l_next := search_delimiter_select(p_input_str, l_next_prev+1 );
SELECT user
INTO x_userid
FROM sys.dual;
SELECT COUNT(*)
INTO dummy
FROM cn_objects
WHERE name = P_NAME
AND object_type = P_OBJECT_TYPE
AND org_id = p_org_id; -- MOAC Change
cn_objects_pkg.insert_row(
x_org_id => p_org_id, -- MOAC Change
x_rowid => x_rowid,
x_object_id => p_object_id,
x_dependency_map_complete => 'n',
x_name => p_name,
x_description => null,
x_object_type => p_object_type,
x_repository_id => p_repository_id,
x_next_synchronization_date => NULL,
x_synchronization_frequency => NULL,
x_object_status => 'a',
x_object_value => NULL );
SELECT object_id
INTO P_OBJECT_ID
FROM cn_objects
WHERE name = P_NAME
AND object_type = P_OBJECT_TYPE
AND org_id = p_org_id; -- MOAC Change
-- Delete module source code from cn_source
-- Delete module object dependencies for this module
cn_utils.delete_module(module_id, package_spec_id, package_body_id, p_org_id); -- MOAC Change
SELECT object_id
INTO l_pkg_object_id
FROM cn_objects
WHERE UPPER(name) = UPPER(p_object_name)
AND object_type = 'PKS'
AND org_id = p_org_id; -- MOAC Change
SELECT text BULK COLLECT
INTO l_sqlstring
FROM cn_source
WHERE object_id = l_pkg_object_id
AND org_id = p_org_id -- MOAC Change
ORDER BY source_id;
SELECT object_id
INTO l_pkg_object_id
FROM cn_objects
WHERE UPPER(name) = UPPER(p_object_name)
AND object_type = 'PKB'
AND org_id = p_org_id; -- MOAC Change
SELECT text BULK COLLECT
INTO l_sqlstring
FROM cn_source
WHERE object_id = l_pkg_object_id
AND org_id = p_org_id -- MOAC Change
ORDER BY source_id;
SELECT COUNT(ROWNUM)
INTO l_error_count
FROM user_errors
WHERE name = p_object_name
AND type IN ('PACKAGE', 'PACKAGE BODY');
SELECT sca_rule_attribute_id,
LOWER(src_column_name) src_column_name,
LOWER(user_column_name) user_column_name,
LOWER(trx_src_column_name) trx_src_column_name
FROM cn_sca_rule_attributes
WHERE transaction_source = 'CN'
AND org_id = p_org_id -- MOAC Change
ORDER BY src_column_name;
SELECT repository_id, org_id
INTO l_repository_id, l_org_id
FROM cn_repositories
WHERE org_id = p_org_id; -- MOAC Change
SELECT module_id
INTO l_module_id
FROM cn_modules
WHERE NAME = 'Collection'
AND org_id = p_org_id; -- MOAC Change
SELECT USER
INTO l_user
FROM dual;
cn_utils.appendcr(l_body_code,' SELECT user_name');
cn_utils.appendcr(l_body_code,' WHERE user_id = (SELECT created_by');
cn_utils.appendcr(l_body_code,' SELECT start_id, end_id, type');
-- Procedure check_update_revenue_error Updates cn_comm_lines_api's Adjust Status to SCA_REVENUE_ERROR
-- for all the orders / invoices that are submitted to SCA Engine and having invalid REVENUE_TYPE
------++
cn_utils.appendcr(l_body_code,' PROCEDURE check_reset_error_normal(');
cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_revenue_error'';');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||'' Errored Records Of Type ORDER Are Updated To Process By SCA'');');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||'' Errored Records Of Type INVOICE Are Updated To Process By SCA'');');
cn_utils.appendcr(l_body_code,' PROCEDURE check_update_revenue_error(');
cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_revenue_error'';');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
cn_utils.appendcr(l_body_code,' (SELECT order_number, line_number, comm_lines_api_id');
cn_utils.appendcr(l_body_code,' (SELECT 1');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
cn_utils.appendcr(l_body_code,' (SELECT invoice_number, line_number, comm_lines_api_id');
cn_utils.appendcr(l_body_code,' (SELECT 1');
cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_revenue_error;');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type ORDER Are Updated With Error SCA_REVENUE_ERROR'');');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type INVOICE Are Updated With Error SCA_REVENUE_ERROR'');');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_revenue_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_REVENUE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_revenue_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_REVENUE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' END check_update_revenue_error;');
-- Procedure check_update_role_error Updates cn_comm_lines_api's Adjust Status to SCA_ROLE_ERROR
-- for all the orders / invoices that are submitted to SCA Engine and not having valid ROLE_ID
------++
cn_utils.appendcr(l_body_code,' PROCEDURE check_update_role_error(');
cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_role_error'';');
cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_role_error;');
cn_utils.appendcr(l_body_code,' SELECT ccla.comm_lines_api_id,');
cn_utils.appendcr(l_body_code,' (SELECT 1 ');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type ORDER Updated To SCA_ROLE_ERROR In CN_COMM_LINES_API'');');
cn_utils.appendcr(l_body_code,' SELECT ccla.comm_lines_api_id,');
cn_utils.appendcr(l_body_code,' (SELECT 1 ');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type INVOICE Updated To SCA_ROLE_ERROR In CN_COMM_LINES_API'');');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_role_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_ROLE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_role_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Unhandled Error In Procedure CHECK_UPDATE_ROLE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' END check_update_role_error;');
-- Procedure check_update_resource_error Updates cn_comm_lines_api's Adjust Status to SCA_SRP_ERROR
-- for all the orders / invoices that are submitted to SCA Engine and not having valid SALESREP_ID
------++
cn_utils.appendcr(l_body_code,' PROCEDURE check_update_resource_error(');
cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(50) := ''check_update_resource_error'';');
cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_resource_error;');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id,');
cn_utils.appendcr(l_body_code,' (SELECT ccla.comm_lines_api_id');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type ORDER Updated To SCA_SRP_ERROR In CN_COMM_LINES_API.'');');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id,');
cn_utils.appendcr(l_body_code,' (SELECT ccla.comm_lines_api_id');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api ');
cn_utils.appendcr(l_body_code,' last_updated_by = l_user_id,');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Record(s) of Type INVOICE Updated To SCA_SRP_ERROR In CN_COMM_LINES_API'');');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_resource_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_RESOURCE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_resource_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_RESOURCE_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' END check_update_resource_error;');
-- Procedure check_update_distinct_error Updates cn_comm_lines_api's Adjust Status to SCA_DISTINCT_ERROR
-- for all the orders / invoices that are submitted to SCA Engine and not having distinct attribute values across
-- order / invoice lines
------++
cn_utils.appendcr(l_body_code,' PROCEDURE check_update_distinct_error(');
cn_utils.appendcr(l_body_code,' l_api_name CONSTANT VARCHAR2(30) := ''check_update_distinct_error'';');
cn_utils.appendcr(l_body_code,' SAVEPOINT check_update_distinct_error;');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' (SELECT comm_lines_api_id, trx_type');
cn_utils.appendcr(l_body_code,' (SELECT ord_no, line_no');
cn_utils.appendcr(l_body_code,' (SELECT distinct order_number ord_no,line_number line_no,');
split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type ORDER Are Updated With Error SCA_DISTINCT_ERROR'');');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' (SELECT comm_lines_api_id, trx_type');
cn_utils.appendcr(l_body_code,' (SELECT inv_no, line_no');
cn_utils.appendcr(l_body_code,' (SELECT distinct invoice_number inv_no,line_number line_no,');
split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' debugmsg(SQL%ROWCOUNT||''Records Of Type INVOICE Are Updated With Error SCA_DISTINCT_ERROR'');');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_distinct_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Unexpected Error In Procedure CHECK_UPDATE_DISTINCT_ERROR''||SQLERRM);');
cn_utils.appendcr(l_body_code,' ROLLBACK TO check_update_distinct_error;');
cn_utils.appendcr(l_body_code,' debugmsg(''Error In Procedure CHECK_UPDATE_DISTINCT_ERROR''||SQLERRM); ');
cn_utils.appendcr(l_body_code,' END check_update_distinct_error;');
cn_utils.appendcr(l_body_code,'-- To Store values to update WHO Columns');
cn_utils.appendcr(l_body_code,' -- Variable Declarations To Hold Values Of Rows Inserted into CN_SCA_HEADERS_INTERFACE,');
cn_utils.appendcr(l_body_code,' -- CN_SCA_LINES_INTERFACE And Rows Updated Into CN_COMM_LINES_API For Each ORDER and/or INVOICE');
cn_utils.appendcr(l_body_code,' SELECT trx_amt, comm_lines_api_id, order_number, line_number from ');
cn_utils.appendcr(l_body_code,' (SELECT SUM(transaction_amount) trx_amt,');
cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' SELECT cshi.sca_headers_interface_id,');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id ');
cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' SELECT trx_amt, comm_lines_api_id, invoice_number, line_number FROM');
cn_utils.appendcr(l_body_code,' (SELECT SUM(transaction_amount) trx_amt,');
cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' SELECT cshi.sca_headers_interface_id,');
cn_utils.appendcr(l_body_code,' SELECT comm_lines_api_id');
cn_utils.appendcr(l_body_code,' (SELECT 1 FROM cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' check_update_revenue_error(');
cn_utils.appendcr(l_body_code,' check_update_role_error(');
cn_utils.appendcr(l_body_code,' check_update_resource_error(');
cn_utils.appendcr(l_body_code,' check_update_distinct_error(');
cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_headers_interface');
split_long_sql(l_body_code,l_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' SELECT');
split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_lines_interface');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = '||l_user_id||',');
cn_utils.appendcr(l_body_code,' last_update_login = '||l_login_id||',');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_headers_interface');
split_long_sql(l_body_code,l_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' SELECT');
split_long_sql(l_body_code,l_trx_src_column_name(l_loop_cntr3),'SELECT');
cn_utils.appendcr(l_body_code,' INSERT INTO cn_sca_lines_interface');
cn_utils.appendcr(l_body_code,' UPDATE cn_comm_lines_api');
cn_utils.appendcr(l_body_code,' last_updated_by = '||l_user_id||',');
cn_utils.appendcr(l_body_code,' last_update_login = '||l_login_id||',');
cn_utils.appendcr(l_body_code,' last_update_date = SYSDATE');
cn_utils.appendcr(l_body_code,' debugmsg(''RECORDS INSERTED INTO****|***TRANSACTION TYPE****|****#OF RECORDS'');');
cn_utils.appendcr(l_body_code,' debugmsg(''RECORDS UPDATED IN CN_COMM_LINES_INTERFACE WITH SCA_PENDING STATUS'');');