The following lines contain the word 'select', 'insert', 'update' or 'delete':
select atah.row_timestamp row_timestamp
,atah.item_class item_class
,atah.item_id item_id
,atah.name name
,atah.order_number order_number
,atah.approver_category category
,atah.user_comments user_comment
,atah.status status
,atah.authority
,atah.occurrence
,atah.action_type_id
,atah.group_or_chain_id
,atah.api_insertion
,atah.member_order_number
from ame_trans_approval_history atah
where atah.date_cleared is null
and atah.transaction_id = transactionIdIn
and atah.application_id = applicationIdIn
and atah.trans_history_id =
(
select max(b.trans_history_id)
from ame_trans_approval_history b
where atah.transaction_id = b.transaction_id
and atah.application_id = b.application_id
and atah.name = b.name
and atah.approver_category = b.approver_category
and atah.item_class = b.item_class
and atah.item_id = b.item_id
and atah.action_type_id = b.action_type_id
and atah.authority = b.authority
and atah.group_or_chain_id = b.group_or_chain_id
and atah.occurrence = b.occurrence
and b.date_cleared is null);
approversOut(tempIndex).api_insertion := approver.api_insertion;
approversOut.delete;
procedure updateApprovalStatus(applicationIdIn in number,
transactionTypeIn in varchar2,
transactionIdIn in varchar2,
approverIn in ame_util.approverRecord2,
notificationIn in ame_util2.notificationRecord
default ame_util2.emptyNotificationRecord,
forwardeeIn in ame_util.approverRecord2 default
ame_util.emptyApproverRecord2,
updateItemIn in boolean default false) as
errorCode integer;
ame_engine.updateApprovalStatus(applicationIdIn => applicationIdIn,
transactionTypeIn => transactionTypeIn,
transactionIdIn => transactionIdIn,
approverIn => approverIn,
notificationIn => notificationIn,
forwardeeIn => forwardeeIn,
updateItemIn => updateItemIn);
routineNameIn => 'updateApprovalStatus',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'updateApprovalStatus',
exceptionNumberIn => sqlcode,
exceptionStringIn => sqlerrm);
end updateApprovalStatus;
procedure updateApprovalStatus2(applicationIdIn in number,
transactionTypeIn in varchar2,
transactionIdIn in varchar2,
approvalStatusIn in varchar2,
approverNameIn in varchar2,
itemClassIn in varchar2 default null,
itemIdIn in varchar2 default null,
actionTypeIdIn in number default null,
groupOrChainIdIn in number default null,
occurrenceIn in number default null,
notificationIn in ame_util2.notificationRecord
default ame_util2.emptyNotificationRecord,
forwardeeIn in ame_util.approverRecord2
default ame_util.emptyApproverRecord2,
updateItemIn in boolean default false) as
approver ame_util.approverRecord2;
/* No locking needed here as it is done in updateApprovalStatus */
if approverNameIn is not null then
approver.name := approverNameIn;
ame_engine.updateApprovalStatus(applicationIdIn => applicationIdIn,
transactionIdIn => transactionIdIn,
approverIn => approver,
transactionTypeIn => transactionTypeIn,
notificationIn => notificationIn,
forwardeeIn => forwardeeIn,
updateItemIn => updateItemIn);
routineNameIn => 'updateApprovalStatus2',
exceptionNumberIn => errorCode,
exceptionStringIn => errorMessage);
routineNameIn => 'updateApprovalStatus2',
exceptionNumberIn => sqlcode,
exceptionStringIn => sqlerrm);
end updateApprovalStatus2;