Home » SQL & PL/SQL » SQL & PL/SQL » Conversion Approach (Oracle 12c, Windows Server 2012)
icon5.gif  Conversion Approach [message #653184] Tue, 28 June 2016 12:07 Go to next message
abacusdotcom
Messages: 15
Registered: June 2010
Location: Lagos
Junior Member

Good day good people.

I have this block of code, needed to convert to Oracle from SQL.

Declare @Rundate date = (Select a.RunDate from dbo.vw_cor_solutionrundate a where a.Alias = 'MPR');

--Account Table mis update
Update mpr_balancesheet
set TeamCode = a.TeamCode,
AccountOfficerCode = a.AccountOfficerCode
from dbo.cor_cust_account a where a.AccountNo = mpr_balancesheet.AccountNo;


--Fix Team code of Account Officers
Update mpr_balancesheet
set TeamCode = a.ParentCode
from mpr_team a where a.Year = Year(@Rundate) and
 a.Code = mpr_balancesheet.AccountOfficerCode
 and a.CompanyCode = mpr_balancesheet.companycode;



--Product mis update
Update mpr_balancesheet
set TeamCode = a.TeamCode,
AccountOfficerCode = a.accountofficercode
from dbo.vw_mpr_productmis a where a.ProductCode = mpr_balancesheet.ProductCode
and a.CaptionName = mpr_balancesheet.CaptionName;

--Branch Update
Update mpr_balancesheet
set TeamCode = a.MisCode,
AccountOfficerCode = 'n/a'
from dbo.mpr_branchdefaultmis a where a.BranchCode = mpr_balancesheet.BranchCode
and mpr_balancesheet.VolumeGL in (select b.ProductCode from mpr_product b)
and a.Deleted = 0 and a.Active = 1;

--Fintrak Account MIS
Update mpr_balancesheet
set TeamCode = a.TeamCode,
AccountOfficerCode = a.AccountOfficerCode
from dbo.mpr_accountmis a where
a.accountno = mpr_balancesheet.AccountNo and a.Deleted = 0 and a.Active = 1;


Kindly advice, to use

1. To convert 'as is' to Oracle

2. Merge statement

3. Cursor Approach

4. Any suggestion/Approach.

Please note: Performance on my mind. mpr_balancesheet is a big table with 12 Months x 7millions Accounts.

Many thanks.
Re: Conversion Approach [message #653186 is a reply to message #653184] Tue, 28 June 2016 12:20 Go to previous messageGo to next message
Bill B
Messages: 1971
Registered: December 2004
Senior Member
I will give you the first 2 updates to show you the form. I don't feel like altering all the issues

declare
rundate date;
begin
Select a.RunDate into rundate from vw_cor_solutionrundate a where a.Alias = 'MPR';

--Account Table mis update
update mpr_balancesheet a
set (TeamCode,AccountOfficerCode) =
(select b.TeamCode,b.AccountOfficerCode
 from cor_cust_account b 
 where b.AccountNo = a.AccountNo)
where exists
(select null
 from cor_cust_account b 
 where b.AccountNo = a.AccountNo);



--Fix Team code of Account Officers
Update mpr_balancesheet a
set a.TeamCode = 
(select b.ParentCode
 from mpr_team b
 where b.Year = to_number(to_char(Rundate,'YYYY')) 
 and B.Code = A.AccountOfficerCode
 and B.CompanyCode = A.companycode)
WHERE EXISTS
(select NULL
 from mpr_team b
 where b.Year = to_number(to_char(Rundate,'YYYY')) 
 and B.Code = A.AccountOfficerCode
 and B.CompanyCode = A.companycode);

end;
/
Re: Conversion Approach [message #653187 is a reply to message #653184] Tue, 28 June 2016 12:20 Go to previous messageGo to next message
Michel Cadot
Messages: 68645
Registered: March 2007
Location: Nanterre, France, http://...
Senior Member
Account Moderator

Post
1. The description/definition/CREATE TABLE statement of each table including all constraints (PK, FK...)
2. What this code intends to do, that is its specification

Re: Conversion Approach [message #653190 is a reply to message #653187] Tue, 28 June 2016 12:46 Go to previous messageGo to next message
abacusdotcom
Messages: 15
Registered: June 2010
Location: Lagos
Junior Member

Noted master.
Re: Conversion Approach [message #653221 is a reply to message #653190] Wed, 29 June 2016 07:38 Go to previous message
abacusdotcom
Messages: 15
Registered: June 2010
Location: Lagos
Junior Member

Many thanks Bill B.

Very useful.
Previous Topic: low performance of CONNECT BY
Next Topic: Issue in Exxternal Table
Goto Forum:
  


Current Time: Thu Apr 25 23:15:49 CDT 2024