The following lines contain the word 'select', 'insert', 'update' or 'delete':
:= 'SELECT person_id
FROM per_all_assignments_f
WHERE assignment_status_type_id IN ( SELECT assignment_status_type_id
FROM per_assignment_status_types
WHERE user_status IN ( ''Active Assignment''
,''Active Contingent Assignment'') )
AND assignment_type IN (''E'',''C'')
AND business_group_id = FND_GLOBAL.per_business_group_id
AND ( effective_start_date BETWEEN ''p_date_from''
AND ''p_date_to''
OR effective_end_date BETWEEN ''p_date_from''
AND ''p_date_to''
OR ''p_date_from'' BETWEEN effective_start_date
AND effective_end_date
OR ''p_date_to'' BETWEEN effective_Start_date
AND effective_end_date )';
l_resource_list.DELETE;
' INSERT INTO hxc_rpt_tc_resource_temp
( resource_id,
tc_start_time,
tc_stop_time,
tc_bb_id,
resource_name,
request_id )
SELECT resource_id,
start_time,
stop_time,
time_building_block_id,
MIN(full_name||'' [''||COALESCE(DECODE(current_employee_flag,''Y'',employee_number),
DECODE(current_npw_flag,''Y'',npw_number),
'' ''
)||'']''),
''p_request_id''
FROM hxc_time_building_blocks hxc,
per_all_people_f ppf
WHERE scope = ''TIMECARD''
AND person_id = resource_id
AND start_time >= effective_start_date
AND stop_time <= effective_end_date
AND start_time >= ''p_date_from''
AND TRUNC(stop_time) <= ''p_date_to''
AND resource_id IN ( ';
hr_utility.trace('Timecard select query is ');
DELETE FROM hxc_rpt_tc_hist_log;
DELETE FROM hxc_rpt_tc_details_all;
IS SELECT /*+ LEADING(gt)
USE_NL(gt hist)
INDEX(hist HXC_RPT_TC_HIST_LOG_PK) */
hist.resource_id,
hist.tc_start_time,
hist.tc_stop_time,
hist.history_till_date
FROM hxc_rpt_tc_hist_log hist,
hxc_rpt_tc_resource_temp gt
WHERE gt.resource_id = hist.resource_id
AND gt.tc_start_time = hist.tc_start_time
AND gt.tc_stop_time = hist.tc_stop_time ;
UPDATE hxc_rpt_tc_resource_temp
SET history_from_date = history_tab(i)
WHERE resource_id = resource_id_tab(i)
AND tc_start_time = start_time_tab(i)
AND tc_stop_time = stop_time_tab(i);
history_tab.DELETE;
resource_id_tab.DELETE;
start_time_tab.DELETE;
stop_time_tab.DELETE;
UPDATE hxc_rpt_tc_resource_temp
SET history_from_date = hr_general.start_of_time
WHERE history_from_date IS NULL ;
PROCEDURE update_layout_ids
AS
CURSOR get_layout_ids
IS SELECT /*+ LEADING(gt)
INDEX(hau HXC_TIME_ATTRIBUTE_USAGES_FK2)
INDEX(ha HXC_TIME_ATTRIBUTES_PK) */
gt.tc_bb_id,
ha.attribute1
FROM hxc_rpt_tc_resource_temp gt,
hxc_time_attribute_usages hau,
hxc_time_attributes ha
WHERE gt.tc_bb_id = hau.time_building_block_id
AND hau.time_building_block_ovn = 1
AND hau.time_attribute_id = ha.time_attribute_id
AND ha.attribute_category = 'LAYOUT';
hr_utility.trace('Starting update_layout_ids');
UPDATE hxc_rpt_tc_resource_temp
SET layout_id = l_layout_id_tab(i)
WHERE tc_bb_id = l_tbb_tab(i) ;
l_layout_id_tab.DELETE;
l_tbb_tab.DELETE;
hr_utility.trace('update_layout_ids completed alright');
END update_layout_ids;
PROCEDURE update_last_touched_date
AS
CURSOR get_last_touched_date
IS SELECT /*+ ORDERED
INDEX(det HXC_RPT_TC_DETAILS_FK2)
INDEX(bb HXC_TIME_BUILDING_BLOCKS_PK) */
bb.time_building_block_id,
bb.object_version_number,
bb.date_to,
bb.last_update_date,
bb.last_updated_by
FROM hxc_time_building_blocks bb,
hxc_rpt_tc_details_all det,
hxc_rpt_tc_resource_temp gt
WHERE bb.scope = 'DETAIL'
AND bb.time_building_block_id = det.detail_bb_id
AND bb.object_version_number = det.detail_bb_ovn
AND det.tc_bb_id = gt.tc_bb_id
AND det.date_to <> bb.date_to ;
update_date_tab DATETABLE;
update_user_tab NUMTABLE;
hr_utility.trace('Starting update_last_touched_date');
update_date_tab,
update_user_tab;
UPDATE hxc_rpt_tc_details_all
SET last_update_date = update_date_tab(i),
last_updated_by = update_user_tab(i),
last_updated_by_user = NULL,
date_to = date_to_tab(i)
WHERE detail_bb_id = bb_id_tab(i)
AND detail_bb_ovn = bb_ovn_tab(i);
bb_id_tab.DELETE;
bb_ovn_tab.DELETE;
date_to_tab.DELETE;
update_date_tab.DELETE;
hr_utility.trace('update_last_touched_date threw NO DATA FOUND');
END update_last_touched_date;
PROCEDURE update_timecard_comments
AS
CURSOR get_timecard_comments
IS SELECT /*+ INDEX(det HXC_RPT_TC_DETAILS_FK2)*/
comment_text,
detail_bb_id,
detail_bb_ovn
FROM hxc_time_building_blocks bb,
hxc_rpt_tc_details_all det,
hxc_rpt_tc_resource_temp gt
WHERE bb.time_building_block_id = det.tc_bb_id
AND bb.object_version_number = det.tc_bb_ovn
AND bb.comment_text IS NOT NULL
AND det.tc_bb_id = gt.tc_bb_id
AND det.request_id = gt.request_id;
hr_utility.trace('Starting update_timecard_comments');
UPDATE hxc_rpt_tc_details_all
SET tc_comments = comment_tab(i)
WHERE detail_bb_id = det_bb_tab(i)
AND detail_bb_ovn = det_ovn_tab(i);
det_bb_tab.DELETE;
det_ovn_tab.DELETE;
comment_tab.DELETE;
hr_utility.trace('Completed update_timecard_comments alright');
END update_timecard_comments;
INSERT INTO hxc_rpt_tc_details_all
( resource_id,
tc_start_time,
tc_stop_time,
tc_bb_id,
tc_bb_ovn,
day_bb_id,
day_bb_ovn,
day_start_time,
day_stop_time,
detail_bb_id,
detail_bb_ovn,
hours_measure,
layout_id,
detail_comments,
creation_date,
created_by,
last_update_date,
last_updated_by,
date_from,
date_to,
request_id,
resource_name,
day_date_to,
status )
SELECT gt.resource_id,
gt.tc_start_time,
gt.tc_stop_time,
day.parent_building_block_id,
day.parent_building_block_ovn,
day.time_building_block_id,
day.object_version_number,
NVL(detail.start_time,day.start_time),
NVL(detail.stop_time,day.stop_time),
detail.time_building_block_id,
detail.object_version_number,
NVL(detail.measure,(detail.stop_time-detail.start_time)*24),
gt.layout_id,
detail.comment_text,
detail.creation_date,
detail.created_by,
detail.last_update_date,
detail.last_updated_by,
detail.date_from,
detail.date_to,
gt.request_id,
gt.resource_name,
day.date_to,
detail.approval_status
FROM hxc_rpt_tc_resource_temp gt,
hxc_time_building_blocks day,
hxc_time_building_blocks detail
WHERE gt.tc_bb_id = day.parent_building_block_id
AND gt.resource_id = day.resource_id
AND day.time_building_block_id = detail.parent_building_block_id
AND day.object_version_number = detail.parent_building_block_ovn
AND detail.resource_id = day.resource_id
AND detail.creation_date > gt.history_from_date ;
IS SELECT 'MAX(DECODE('||DECODE(ATTRIBUTE_CATEGORY,
'ELEMENT','SUBSTR(ATTRIBUTE_CATEGORY,1,7)','ATTRIBUTE_CATEGORY'
)
||','''||attribute_category||''',ha.'||attribute||'))',
attribute_category,
component_name,
row_num
FROM ( SELECT hlc.layout_id,
hlc.layout_component_id,
REGEXP_REPLACE(hlc.component_name,'.*- ') component_name,
DECODE( hlcq.qualifier_attribute26,
'Dummy Element Context','ELEMENT',
SUBSTR(hlcq.qualifier_attribute26,1,30)
) attribute_category,
SUBSTR(hlcq.qualifier_attribute27,1,30) attribute,
RANK() OVER ( ORDER BY hlc.layout_component_id ) row_num
FROM hxc_layouts hl,
hxc_layout_components hlc,
hxc_layout_comp_qualifiers hlcq
WHERE hlc.layout_id = hl.layout_id
AND hl.layout_id = p_curr_layout
AND hl.layout_type = 'TIMECARD'
AND hlcq.layout_component_id = hlc.layout_component_id
AND hlcq.qualifier_attribute25 = 'FLEX'
AND hlcq.qualifier_attribute_category IN ('LOV','CHOICE_LIST',
'PACKAGE_CHOICE_LIST',
'TEXT_FIELD',
'DESCRIPTIVE_FLEX')
);
dynamic_cursor_select VARCHAR2(1000);
l_dynamic_cursor_select VARCHAR2(1000) :=
' CURSOR get_attributes IS
SELECT det.detail_bb_id,
det.detail_bb_ovn,
MAX(DECODE(ATTRIBUTE_CATEGORY,''REASON'',ha.ATTRIBUTE1)),
MAX(DECODE(ATTRIBUTE_CATEGORY,''REASON'',ha.ATTRIBUTE2)),
MAX(DECODE(ATTRIBUTE_CATEGORY,''REASON'',ha.ATTRIBUTE3)),
';
dynamic_update VARCHAR2(2000);
l_dynamic_update VARCHAR2(2000) :=
' IF det_bb_id_tab.COUNT > 0 THEN
FORALL i IN det_bb_id_tab.FIRST..det_bb_id_tab.LAST
UPDATE hxc_rpt_tc_details_all
SET cla_reason = cla_reason_tab(i),
cla_comments = cla_comments_tab(i),
cla_type = cla_type_tab(i),';
dynamic_update_where VARCHAR2(1000);
l_dynamic_update_where VARCHAR2(1000) :=
'
WHERE detail_bb_id = det_bb_id_tab(i)
AND detail_bb_ovn = det_bb_ovn_tab(i);
dynamic_cursor_select := l_dynamic_cursor_select;
dynamic_update := l_dynamic_update;
dynamic_update_where := l_dynamic_update_where;
dynamic_cursor_select := dynamic_cursor_select||l_layout_fld_column||'
,';
dynamic_update := dynamic_update||'attribute'||l_layout_fld_rownum||
' = display_val'||l_layout_fld_rownum||'(i),';
dynamic_cursor_select := RTRIM(dynamic_cursor_select,',');
dynamic_update := RTRIM(dynamic_update,',');
hr_utility.trace(dynamic_cursor_select);
hr_utility.trace(dynamic_update);
hr_utility.trace(dynamic_update_where);
dynamic_cursor_select||
dynamic_cursor_where||
dynamic_cursor_group_by||
dynamic_cursor_open||
dynamic_cursor_close||
dynamic_update||
dynamic_update_where||
dynamic_footer;
IS SELECT attribute||' = '''||component_name||': ''||NVL(('||query||'hx.'||attribute||'),hx.'||attribute||')'
FROM hxc_rpt_layout_comp_queries
WHERE layout_id = p_layout;
l_update VARCHAR2(4000);
l_update_predicate VARCHAR2(4000) :=
' UPDATE /*+ INDEX(hx HXC_RPT_TC_DETAILS_FK2) */
hxc_rpt_tc_details_all hx
SET ';
l_update_where VARCHAR2(4000) :=
' WHERE tc_bb_id IN ( SELECT tc_bb_id
FROM hxc_rpt_tc_resource_temp gt
WHERE layout_id = current_layout
)
AND request_id = THIS_REQUEST_ID';
l_update := l_update_predicate||curr_query||l_update_where;
l_update := REPLACE(l_update,'current_layout',l_curr_layout);
l_update := REPLACE(l_update,'THIS_REQUEST_ID',g_request_id);
hr_utility.trace('Dynamic Update query is ');
hr_utility.trace(l_update);
EXECUTE IMMEDIATE l_update;
IS SELECT DISTINCT alias_definition_id
FROM hxc_rpt_tc_resource_temp
WHERE layout_id = p_layout_id
AND alias_definition_id <> 0;
IS SELECT 'MAX(DECODE(bld_blk_info_type_id,'||hmc.bld_blk_info_type_id||','
||DECODE(segment,'ATTRIBUTE_CATEGORY','LTRIM(ha.'||segment||','''||building_block_category||' - '')','ha.'||segment)||'))',
hatc.component_type
FROM hxc_mapping_components hmc,
hxc_alias_types hat,
hxc_alias_type_components hatc,
hxc_alias_definitions had,
hxc_bld_blk_info_type_usages bldu,
hxc_bld_blk_info_types bld
WHERE had.alias_type_id = hat.alias_type_id
AND hatc.alias_type_id = hat.alias_type_id
AND hmc.mapping_component_id = hatc.mapping_component_id
AND bld.bld_blk_info_type_id = hmc.bld_blk_info_type_id
AND bld.bld_blk_info_type_id = hmc.bld_blk_info_type_id
AND bld.bld_blk_info_type_id = bldu.bld_blk_info_type_id
AND had.alias_definition_id = p_alias_def
ORDER
BY hatc.component_type ;
SELECT detail_bb_id,
detail_bb_ovn,
';
SELECT alias_value_name
FROM hxc_alias_values
WHERE alias_definition_id = curr_alias_def
AND ';
UPDATE hxc_rpt_tc_details_all
set attributeATTR_COL = ''ALIASNAME: ''||alias_value(i)
WHERE detail_bb_id = det_bb_id_tab(i)
AND detail_bb_ovn = det_bb_ovn_tab(i);
UPDATE hxc_rpt_tc_resource_temp
SET alias_definition_id = NVL( hxc_preference_evaluation.resource_preferences
(resource_id,
'TC_W_TCRD_ALIASES',
i,
tc_start_time),0)
WHERE layout_id = l_curr_layout;
hr_utility.trace('Updated alias definition ids for current list of resources ');
IS SELECT flv.meaning,
rtrim(substr(flv.lookup_type,5,6),'_A'),
det.detail_bb_id,
det.detail_bb_ovn
FROM hxc_rpt_tc_details_all det,
hxc_rpt_tc_resource_temp gt,
fnd_lookup_values flv
WHERE gt.request_id = det.request_id
AND gt.resource_id = det.resource_id
AND gt.tc_start_time = det.tc_start_time
AND gt.tc_stop_time = det.tc_stop_time
AND flv.lookup_code = det.cla_reason
AND flv.language = userenv('LANG')
AND flv.lookup_type IN ( 'HXC_CHANGE_AUDIT_REASONS',
'HXC_LATE_AUDIT_REASONS')
AND flv.view_application_id = 3
AND flv.security_group_id = FND_GLOBAL.lookup_security_group(flv.lookup_type,
flv.view_application_id);
UPDATE hxc_rpt_tc_details_all
SET cla_reason = l_meaning_tab(i)
WHERE detail_bb_id = l_det_bb_id_tab(i)
AND detail_bb_ovn = l_det_bb_ovn_tab(i)
AND cla_type = l_type_tab(i) ;
l_meaning_tab.DELETE;
l_det_bb_id_tab.DELETE;
l_det_bb_ovn_tab.DELETE;
l_type_tab.DELETE;
PROCEDURE update_transaction_ids(p_record_save IN VARCHAR2)
AS
CURSOR get_transaction_details
IS SELECT /*+ INDEX(det HXC_RPT_TC_DETAILS_FK1) */
htd.transaction_id,
htd.transaction_detail_id,
det.detail_bb_id,
det.detail_bb_ovn
FROM hxc_rpt_tc_details_all det,
hxc_rpt_tc_resource_temp gt,
hxc_transaction_details htd,
hxc_transactions ht
WHERE gt.tc_start_time = det.tc_start_time
AND gt.tc_stop_time = det.tc_stop_time
AND gt.resource_id = det.resource_id
AND det.detail_bb_id = htd.time_building_block_id
AND det.detail_bb_ovn = htd.time_building_block_ovn
AND htd.transaction_id = ht.transaction_id
AND ht.type = 'DEPOSIT'
AND ht.status = 'SUCCESS'
AND htd.status = 'SUCCESS';
IS SELECT DISTINCT creation_date,
transaction_id,
resource_id,
tc_start_time,
tc_stop_time,
dense,
ROUND(PERCENT_RANK() OVER(PARTITION BY resource_id,
tc_start_time,
tc_stop_time
ORDER BY creation_date),5)
FROM ( SELECT creation_date,
transaction_id,
DENSE_RANK() OVER(PARTITION BY det.resource_id,
det.tc_start_time,
det.tc_stop_time
ORDER BY creation_date) dense,
det.resource_id,
det.tc_start_time,
det.tc_stop_time
FROM hxc_rpt_tc_details_all det,
hxc_rpt_tc_resource_temp temp
WHERE temp.resource_id = det.resource_id
AND temp.tc_start_time = det.tc_start_time
AND temp.tc_stop_time = det.tc_stop_time
)
ORDER BY resource_id,
tc_start_time,
tc_stop_time,
dense ;
hr_utility.trace('update_transaction_ids');
UPDATE hxc_rpt_tc_details_all
SET transaction_id = det_trans_id_tab(i),
transaction_detail_id = det_trans_detail_id_tab(i)
WHERE detail_bb_id = det_bb_id_tab(i)
AND detail_bb_ovn = det_bb_ovn_tab(i);
det_bb_id_tab.DELETE;
det_bb_ovn_tab.DELETE;
det_trans_id_tab.DELETE;
det_trans_detail_id_tab.DELETE;
UPDATE hxc_rpt_tc_details_all
SET transaction_id = trans_tab(i)+fac_tab(i)
WHERE resource_id = res_id_tab(i)
AND tc_start_time = start_timetab(i)
AND tc_stop_time = stop_timetab(i)
AND creation_date = creation_tab(i)
AND transaction_id IS NULL;
res_id_tab.DELETE;
start_timetab.DELETE;
stop_timetab.DELETE;
creation_tab.DELETE;
trans_tab.DELETE;
hr_utility.trace('update_transaction_ids completed alright');
hr_utility.trace('No Data Found from update_transaction_ids');
END update_transaction_ids;
IS SELECT /*+ ORDERED */
det.detail_bb_id,
det.detail_bb_ovn,
fnd.user_name||newline||'['||
ppf.full_name||']'
FROM hxc_rpt_tc_resource_temp gt,
hxc_rpt_tc_details_all det,
fnd_user fnd,
per_all_people_f ppf
WHERE gt.tc_bb_id = det.tc_bb_id
AND gt.request_id = p_request_id
AND det.created_by = fnd.user_id
AND fnd.employee_id = ppf.person_id
AND det.day_start_time BETWEEN ppf.effective_start_date
AND ppf.effective_end_date
AND det.created_by_user IS NULL ;
UPDATE hxc_rpt_tc_details_all
SET created_by_user = l_person_tab(i)
WHERE detail_bb_id = l_bb_id_tab(i)
AND detail_bb_ovn = l_bb_ovn_tab(i);
l_bb_id_tab.DELETE;
l_bb_ovn_tab.DELETE;
l_person_tab.DELETE;
PROCEDURE translate_last_updated_by
AS
CURSOR get_updated_user ( p_request_id VARCHAR2)
IS SELECT /*+ ORDERED */
det.detail_bb_id,
det.detail_bb_ovn,
fnd.user_name||newline||'['||
ppf.full_name||']'
FROM hxc_rpt_tc_resource_temp gt,
hxc_rpt_tc_details_all det,
fnd_user fnd,
per_all_people_f ppf
WHERE gt.tc_bb_id = det.tc_bb_id
AND gt.request_id = p_request_id
AND det.last_updated_by = fnd.user_id
AND fnd.employee_id = ppf.person_id
AND det.day_start_time BETWEEN ppf.effective_start_date
AND ppf.effective_end_date
AND det.last_updated_by_user IS NULL ;
hr_utility.trace('translate_last_updated_by');
OPEN get_updated_user(g_request_id);
FETCH get_updated_user BULK COLLECT INTO l_bb_id_tab,
l_bb_ovn_tab,
l_person_tab ;
CLOSE get_updated_user;
hr_utility.trace('Fetched from get_updated_user ');
UPDATE hxc_rpt_tc_details_all
SET last_updated_by_user = l_person_tab(i)
WHERE detail_bb_id = l_bb_id_tab(i)
AND detail_bb_ovn = l_bb_ovn_tab(i);
l_bb_id_tab.DELETE;
l_bb_ovn_tab.DELETE;
l_person_tab.DELETE;
hr_utility.trace('translate_last_updated_by completed alright');
hr_utility.trace('No Data Found from translate_last_updated_by, something wrong');
END translate_last_updated_by;
UPDATE hxc_rpt_tc_hist_log
SET request_id = p_request_id,
history_till_date = p_request_sysdate
WHERE (resource_id,
tc_start_time,
tc_stop_time)
IN ( SELECT resource_id,
tc_start_time,
tc_stop_time
FROM hxc_rpt_tc_resource_temp )
RETURNING resource_id,
tc_start_time,
tc_stop_time BULK COLLECT INTO resource_id_tab,
start_time_tab,
stop_time_tab ;
hr_utility.trace('Updated hxc_rpt_tc_hist_log ');
hr_utility.trace('Total Number of timecards updated here : '||resource_id_tab.COUNT);
DELETE FROM hxc_rpt_tc_resource_temp
WHERE resource_id = resource_id_tab(i)
AND tc_start_time = start_time_tab(i)
AND tc_stop_time = stop_time_tab(i);
INSERT INTO hxc_rpt_tc_hist_log
( resource_id,
tc_start_time,
tc_stop_time,
request_id,
history_till_date )
SELECT resource_id,
tc_start_time,
tc_stop_time,
MIN(p_request_id),
MIN(p_request_sysdate)
FROM hxc_rpt_tc_resource_temp
GROUP BY resource_id,
tc_start_time,
tc_stop_time;
resource_id_tab.DELETE;
start_time_tab.DELETE;
stop_time_tab.DELETE;
IS SELECT DISTINCT layout_id
FROM hxc_rpt_tc_resource_temp;
DELETE FROM hxc_rpt_tc_resource_temp;
SELECT count(*)
INTO timecard_exists
FROM hxc_rpt_tc_resource_temp
WHERE rownum < 2;
hr_utility.trace('Using history data, so update Last Touched Dates');
update_last_touched_date;
update_layout_ids;
update_timecard_comments;
update_transaction_ids(p_record_save);
translate_last_updated_by;
DELETE FROM hxc_rpt_tc_resource_temp;
PROCEDURE insert_queries(p_vo_name VARCHAR2,
p_query VARCHAR2)
AS
layout_tab NUMTABLE;
IS SELECT layout_id,
layout_component_id,
component_name,
attribute
FROM (
SELECT /*+ INDEX( hlc HXC_LAYOUT_COMPONENTS_FK1 )
INDEX( hlcq HXC_LAYOUT_COMP_QUALIFIERS_FK1) */
hlc.layout_id ,
hlc.layout_component_id ,
REGEXP_REPLACE(hlc.component_name,'.*- ') component_name,
hlcq.qualifier_attribute1 vo_name,
'ATTRIBUTE'||RANK() OVER ( PARTITION BY hlc.layout_id
ORDER BY hlc.layout_component_id ) AS attribute
FROM hxc_layouts hl,
hxc_layout_components hlc,
hxc_layout_comp_qualifiers hlcq
WHERE hlc.layout_id = hl.layout_id
AND hl.layout_type = 'TIMECARD'
AND hlcq.layout_component_id = hlc.layout_component_id
AND hlcq.qualifier_attribute25 = 'FLEX'
AND hlcq.qualifier_attribute_category IN ('LOV',
'CHOICE_LIST',
'PACKAGE_CHOICE_LIST',
'TEXT_FIELD',
'DESCRIPTIVE_FLEX')
) layout_all
WHERE layout_all.vo_name = p_vo_name ;
DELETE FROM hxc_rpt_layout_comp_queries
WHERE layout_component_id = layout_comp_tab(i);
DELETE FROM hxc_rpt_layout_comp_queries
WHERE layout_id = layout_tab(i)
AND attribute = attribute_tab(i);
INSERT INTO hxc_rpt_layout_comp_queries
( layout_id,
layout_component_id,
component_name,
query,
attribute )
VALUES ( layout_tab(i),
layout_comp_tab(i),
comp_tab(i),
p_query,
attribute_tab(i) );
END insert_queries;