The following lines contain the word 'select', 'insert', 'update' or 'delete':
select_cursor NUMBER := 0 ;
l_valid_1 VARCHAR2(500) := ' grl.delete_flag = ''N'' AND :DATE1 BETWEEN Trunc(grl.start_date_active) AND NVL(Trunc(grl.end_date_active), :DATE2 ) ' ;
l_valid_2 VARCHAR2(500) := ' grl.delete_flag = ''N'' AND :DATE3 BETWEEN Trunc(grl.start_date_active) AND NVL(Trunc(grl.end_date_active), :DATE4 ) ' ;
l_valid_3 VARCHAR2(500) := ' grl.delete_flag = ''N'' AND :DATE5 BETWEEN Trunc(grl.start_date_active) AND NVL(Trunc(grl.end_date_active), :DATE6 ) ' ;
'SELECT DISTINCT group_id ' ||
'FROM jtf_rs_grp_relations grl ' ||
'WHERE ' || l_valid_1 || ' ' || l_exclude_string ||
'START WITH related_group_id IN (' || l_include_string || ') AND ' || l_valid_2 ||
'CONNECT BY ' || l_valid_3 || ' ' || l_exclude_string_2 ||
' AND PRIOR GROUP_ID = RELATED_GROUP_ID ' ;
select_cursor := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.parse(select_cursor, l_sql, DBMS_SQL.NATIVE);
DBMS_SQL.define_array (select_cursor, 1, x_hierarchy_groups, 10, 1);
DBMS_SQL.bind_variable(select_cursor, ':DATE1', l_date);
DBMS_SQL.bind_variable(select_cursor, ':DATE2', l_date);
DBMS_SQL.bind_variable(select_cursor, ':DATE3', l_date);
DBMS_SQL.bind_variable(select_cursor, ':DATE4', l_date);
DBMS_SQL.bind_variable(select_cursor, ':DATE5', l_date);
DBMS_SQL.bind_variable(select_cursor, ':DATE6', l_date);
addBindVariables(select_cursor,'INCBIND',p_include_array) ;
addBindVariables(select_cursor,'EXBIND', p_exclude_array) ;
addBindVariables(select_cursor,'EX2BIND',p_exclude_array) ;
l_match_rows := DBMS_SQL.EXECUTE(select_cursor);
l_match_rows := DBMS_SQL.fetch_rows(select_cursor);
DBMS_SQL.column_value (select_cursor, 1, x_hierarchy_groups);
DBMS_SQL.close_cursor(select_cursor);
IF (DBMS_SQL.is_open(select_cursor)) THEN
DBMS_SQL.close_cursor(select_cursor);
compPlanQuery VARCHAR2(4000) := 'SELECT LOOKUP_CODE,MEANING FROM CN_LOOKUPS WHERE
LOOKUP_TYPE = ''PLAN_TYPE_STATUS'' ';
x_update_groups OUT NOCOPY DBMS_SQL.NUMBER_TABLE,
x_view_groups OUT NOCOPY DBMS_SQL.NUMBER_TABLE,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Get_All_Groups_Access';
UPDATE_ARRAY DBMS_SQL.NUMBER_TABLE;
hier_update_groups DBMS_SQL.NUMBER_TABLE ;
select_cursor NUMBER ;
SELECT u.comp_group_id group_id , u.access_code access_code
FROM cn_qm_comp_groups g, cn_user_accesses u
WHERE u.user_id = c_user_id
AND g.comp_group_id = u.comp_group_id
AND c_date BETWEEN Trunc(g.start_date_active) AND
Nvl(Trunc(g.end_date_active), c_date )
AND ((u.org_code LIKE p_org_code) OR (p_org_code IS NULL)) ;
IF retCsr.access_code = 'UPDATE' THEN
l_inc_count := l_inc_count + 1 ;
UPDATE_ARRAY(l_inc_count) := retCsr.group_id ;
X_UPDATE_GROUPS(l_inc_count) := retCsr.group_id ;
Get_Groups_In_Hierarchy(VIEW_ARRAY,UPDATE_ARRAY,l_date,hier_view_groups) ;
Get_Groups_In_Hierarchy(UPDATE_ARRAY,VIEW_ARRAY,l_date,hier_update_groups) ;
IF hier_update_groups.count > 0 THEN
FOR i IN hier_update_groups.first..hier_update_groups.last LOOP
X_UPDATE_GROUPS(l_inc_count+i) := hier_update_groups(i) ;
p_update_groups IN DBMS_SQL.NUMBER_TABLE,
p_view_groups IN DBMS_SQL.NUMBER_TABLE,
x_privilege OUT NOCOPY VARCHAR2,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Get_Group_Access';
IF contains(p_group_id,p_update_groups) THEN
--dbms_output.put_line('IRead Only');