When SQL statements contain embedded PL/SQL statements, the performance will be poorer since each call require a context switch.
Violating this rule will affect the performance of the code.The severity is minor which means that the code probably works, but should be corrected at first opportunity.
Note:
This rule is subject to a white-list that is maintained by the product managers collectively.Code that violates this rule must either be fixed or put on the appropriate white-list.See appendixes for currently white-listed objects.
Correct this if it is possible, possible solutions could be table joins or retreiving value in a cursor loop.
In this example a Get function is used to get the site description.
SELECT part_no part_no, contract contract, Site_API.Get_Company(contract) company
FROM Part_Cost_Tab;
In this case we can get the company by using an join instead.
SELECT pc.part_no part_no, pc.contract contract, s.company company
FROM Part_Cost_Tab pc, Site_Tab s
WHERE pc.contract = s.contract;
Appendix 1: White-list of approved objects in Financials.
SepaFormat:CREATE_OUTPUT
PaymentProposal:ORDER_PROPOSAL_ADVICE_REPORT
PaymentProposal:START_PRINT_PAYMENT_ADVICES
PaymentOrder:CREATE_PAY_CHECK_ITEMS__
PayledPaySchedUtil:PAY_SCHED_MATCH
PayledPaySchedUtil:ADV_PAY_SCHED_MATCH
MixedPayment:VALIDATE_APPROVE___
LkcosFormat:CREATE_OUTPUT_FILE
LedgerTransaction:REFRESH_DOM_AMOUNTS_
LedgerItemUtil:GET_DOM_AMOUNT_DUE
InterestProposal:CREATE_PROPOSAL
ExtPaymentMatch:CALC_AMOUNTS_FOR_INVOICE
DirectDebitingFormatBgc:CREATE_OUTPUT
CashTransaction:CREATE_GROUP___
BankReconcileUtil:EXEC_AUTOMATIC_MATCHING
BankReconcileUtil:CASH_MATCH_OPEN_CHECK
AchFormat:CREATE_OUTPUT
BudgetPeriodAmount:INITIATE_PERIOD_VALUES_
ReportedBalances:COPY_MULTIPLE_ADJ_JOURNALS__
ReportedBalances:COPY_MULTI_ADJ_JOUR_CHECK__
DeprPlan:TRANSFER_TO_BUDGET_PROCESS__
PlnTransTransposedUtil:TRANSFER_TO_TRANSACTIONS
PersPlanHrUtil:UPDATE_BASE_VALUES_FROM_HR
Appendix 2: White-list of approved objects in Human Resources.
EmpPersDevCycle:GET_HOURS_WEEK
EmpPersDevCycle:GET_CYCLE_WORK_HOURS__
EmpPersDevCycle:DELETE___
EmpPersDevCycle:UPDATE___
EmpPersDevCycle:INSERT___
TrvexpWebUtil:GET_TRV_REQ_HEADER_AUTH_STATUS
TransferUtil:TRANSFER_GROUP___
TimePersDiary:CHECK_TIMREPORTING
CalendarViewGanttUtil:GET_ABSENCES_REQUESTS
AdditionalCalcUtil:CALC_ADDITIONAL_RESULTS___
AdditionalCalcSetup:GET_RULE_FOR_EMP
AbsenceLimit:GENERATE_LIMIT_MODE___
AbsenceLimit:GENERATE_LIMIT___
AbsenceIntegrationUtil:DELETE_ABS_FROM_TAA
ProjectTransactionUtil:REFRESH_PROJECT_CONNECTION
InvoicingPlan:REFRESH_PROJECT_CONNECTION
PersonWordDocument:GET_DEFAULT_ATTRIBUTES___
Appendix 3: White-list of approved objects in Manufacturing.