The following lines contain the word 'select', 'insert', 'update' or 'delete':
PROCEDURE update_account_types(coa_id NUMBER,
min_ccid_processed NUMBER) IS
acct_segcol VARCHAR2(30);
ccid_update VARCHAR2(3000);
SELECT rownum, value_attribute_type
FROM ( SELECT value_attribute_type
FROM fnd_flex_validation_qualifiers
WHERE id_flex_code = 'GL#'
AND id_flex_application_id = 101
AND flex_value_set_id = par_flex_value_set_id
ORDER by assignment_date, value_attribute_type ) ;
SELECT seg.application_column_name, vs.flex_value_set_id,
vs.parent_flex_value_set_id,
vt.application_table_name, vt.value_column_name,
decode(vt.compiled_attribute_column_name,
'NULL', null,
vt.compiled_attribute_column_name)
INTO acct_segcol, acct_vsetid, acct_pvsetid,
acct_tname, acct_vcolname, acct_attrib
FROM fnd_flex_validation_tables vt,
fnd_flex_value_sets vs,
fnd_id_flex_segments seg,
fnd_segment_attribute_values qual
WHERE qual.application_id = 101
AND qual.id_flex_code = 'GL#'
AND qual.id_flex_num = coa_id
AND qual.segment_attribute_type = 'GL_ACCOUNT'
AND qual.attribute_value = 'Y'
AND seg.application_id = qual.application_id
AND seg.id_flex_code = qual.id_flex_code
AND seg.id_flex_num = qual.id_flex_num
AND seg.application_column_name = qual.application_column_name
AND vs.flex_value_set_id = seg.flex_value_set_id
AND vt.flex_value_set_id(+) = vs.flex_value_set_id;
SELECT application_column_name
INTO acct_psegcol
FROM fnd_id_flex_segments pseg
WHERE application_id = 101
AND id_flex_code = 'GL#'
AND id_flex_num = coa_id
AND flex_value_set_id+0 = acct_pvsetid
AND segment_num = (SELECT min(segment_num)
FROM fnd_id_flex_segments pseg2
WHERE application_id = 101
AND id_flex_code = 'GL#'
AND id_flex_num = coa_id
AND flex_value_set_id+0 = acct_pvsetid);
ccid_update :=
'UPDATE gl_code_combinations cc ' ||
'SET account_type ';
ccid_update := ccid_update ||
'= (SELECT decode(vs.flex_value, ''T'', ''O'', ' ||
'substrb( fnd_global.newline||vs.compiled_value_attributes||fnd_global.newline,
instrb( fnd_global.newline||vs.compiled_value_attributes||fnd_global.newline,
fnd_global.newline,1,:1
)+1, 1
)) ' ||
'FROM fnd_flex_values vs ' ||
'WHERE vs.flex_value_set_id = ' || to_char(acct_vsetid) || ' ' ||
'AND vs.flex_value = cc.' || acct_segcol || ' ';
ccid_update := ccid_update ||
'AND vs.parent_flex_value_low = cc.' || acct_psegcol || ' ),';
ccid_update := ccid_update || '),';
ccid_update := ccid_update ||
'= (SELECT decode(cc2.' || acct_segcol || ', ''T'', ''O'', ' ||
'decode(vs.rowid, NULL, ';
ccid_update := ccid_update || '''O'', ';
ccid_update := ccid_update ||
'substrb(fnd_global.newline||' || acct_attrib || '||fnd_global.newline,
instrb(fnd_global.newline||' ||acct_attrib || '||fnd_global.newline,
fnd_global.newline,1,:2
) +1,
1), ';
ccid_update := ccid_update ||
'substrb(fnd_global.newline||vt.' || acct_attrib || '||fnd_global.newline,
instrb(fnd_global.newline||vt.' || acct_attrib || '||fnd_global.newline,
fnd_global.newline,1,:3
) +1,
1), ';
ccid_update := ccid_update ||
'substrb( fnd_global.newline||vs.compiled_value_attributes||fnd_global.newline,
instrb( fnd_global.newline||vs.compiled_value_attributes||fnd_global.newline,
fnd_global.newline,1,:4
)+1, 1
) )) ' ||
'FROM fnd_flex_values vs, gl_code_combinations cc2, ' ||
acct_tname || ' vt ' ||
'WHERE cc2.rowid = cc.rowid ' ||
'AND vs.flex_value_set_id(+)= :5 '||
'AND vs.flex_value(+) = cc2.' || acct_segcol || ' ' ||
'AND vs.summary_flag(+) = ''Y'' ' ||
'AND vt.'||acct_vcolname||'(+) = cc2.'||acct_segcol||'), ';
ccid_update := ccid_update ||
'last_update_date = sysdate, ' ||
'last_updated_by = 1 ' ||
'WHERE chart_of_accounts_id = :6 ' ;
ccid_update := ccid_update ||
'AND code_combination_id >= :7 ' ||
'AND template_id IS NOT NULL ';
dbms_sql.parse(ccid_cursor, ccid_update, dbms_sql.v7);
END update_account_types;