What is the best approach to process data on row by row basis ?

Hi Gurus,
I need to code stored proc to process sales_orders into Invoices. I
think that I must do row by row operation, but if possible I don't want
to use cursor. The algorithm is below :
for all sales_orders with status = "open"
check for credit limit
if over credit limit -> insert row log_table; process next order
check for overdue
if there is overdue invoice -> insert row to log_table; process
next order
check all order_items for stock availability
if there is item that has not enough stock -> insert row to
log_table; process next order
if all check above are passed:
create Invoice (header + details)
end_for
What is the best approach to process data on row by row basis like
above ?
Thank you for your help,
xtanto

Processing data row by row is not the fastest method out there. You'll be sending much more SQL statements towards the database than needed. The advice is to use SQL, and if not possible or too complex, use PL/SQL with bulk processing.
In this case a SQL only solution is possible.
The example below is oversimplified, but it shows the idea:
SQL> create table sales_orders
  2  as
  3  select 1 no, 'O' status, 'Y' ind_over_credit_limit, 'N' ind_overdue, 'N' ind_stock_not_available from dual union all
  4  select 2, 'O', 'N', 'N', 'N' from dual union all
  5  select 3, 'O', 'N', 'Y', 'Y' from dual union all
  6  select 4, 'O', 'N', 'Y', 'N' from dual union all
  7  select 5, 'O', 'N', 'N', 'Y' from dual
  8  /
Tabel is aangemaakt.
SQL> create table log_table
  2  ( sales_order_no number
  3  , message        varchar2(100)
  4  )
  5  /
Tabel is aangemaakt.
SQL> create table invoices
  2  ( sales_order_no number
  3  )
  4  /
Tabel is aangemaakt.
SQL> select * from sales_orders
  2  /
        NO STATUS IND_OVER_CREDIT_LIMIT IND_OVERDUE IND_STOCK_NOT_AVAILABLE
         1 O      Y                     N           N
         2 O      N                     N           N
         3 O      N                     Y           Y
         4 O      N                     Y           N
         5 O      N                     N           Y
5 rijen zijn geselecteerd.
SQL> insert
  2    when ind_over_credit_limit = 'Y' then
  3         into log_table (sales_order_no,message) values (no,'Over credit limit')
  4    when ind_overdue = 'Y' and ind_over_credit_limit = 'N' then
  5         into log_table (sales_order_no,message) values (no,'Overdue')
  6    when ind_stock_not_available = 'Y' and ind_overdue = 'N' and ind_over_credit_limit = 'N' then
  7         into log_table (sales_order_no,message) values (no,'Stock not available')
  8    else
  9         into invoices (sales_order_no) values (no)
10  select * from sales_orders where status = 'O'
11  /
5 rijen zijn aangemaakt.
SQL> select * from invoices
  2  /
SALES_ORDER_NO
             2
1 rij is geselecteerd.
SQL> select * from log_table
  2  /
SALES_ORDER_NO MESSAGE
             1 Over credit limit
             3 Overdue
             4 Overdue
             5 Stock not available
4 rijen zijn geselecteerd.Hope this helps.
Regards,
Rob.

Similar Messages

  • What is the best approach for transferring DAT to Hard Drive?

    Hi,
    I've got 10 60 min DATS of my 1970s rock band transferred from live reel to reel recording of gigs. I want to get rid of the DAT machine on Ebay and before I do get these DATS transferred for storage on CDs or DVDs.
    I have an external hard drive to transfer to before burning to disc.
    Does it make sense to use Logic Pro to transfer the DATS through the computer to the hard drive? Or is there a better / easier / faster way to do it?
    I'll want to go back and find songs later and use Logic Pro to EQ and mix them onto a CD by track at some point.
    Each DAT is 60 minutes worth of material and ideally I'd like to be able to run through the transfer and mark where songs start as the "in between" stuff is there also.
    Thanks,
    Bob

    Hey, thanks for the reply.
    Few more comments....
    Could you suggest a Mac stereo editor/recorder.
    What is s/pdif? I'm new to computer recording.
    Slave recorder to the DAT....I'm hooking the DAT into the iMac through an interface...is this what you mean?
    Got you on separate recordings....I want to do that later...Just get the whole tape onto the hard drive then onto a CD or DVD. When I have more time I'll run through and find songs, etc.
    Again, thanks,
    Bob

  • What are the best approaches for mapping re-start in OWB?

    What are the best approaches for mapping re-start in OWB?
    We are using OWB repository 10.2.0.1.0 and OWB client 10.2.0.1.31. The Oracle version is 10 G (10.2.0.3.0). OWB is installed on Linux.
    We have number of mappings. We built process flows for mappings as well.
    I like to know, what are the best approches to incorportate re-start options in our process. ie a failure of mapping in process flow.
    How do we re-cycle failed rows?
    Are there any builtin features/best approaches in OWB to implement the above?
    Does runtime audit tables help us to build re-start process?
    If not, do we need to maintain our own tables (custom) to maintain such data?
    How did our forum members handled above situations?
    Any idea ?
    Thanks in advance.
    RI

    Hi RI,
    How many mappings (range) do you have in a process flows?Several hundreds (100-300 mappings).
    If we have three mappings (eg m1, m2, m3) in process flow. What will happen if m2 fails?Suppose mappings connected sequentially (m1 -> m2 -> m3). When m2 fails then processflow is suspended (transition to m3 will not be performed). You should obviate cause of error (modify mapping and redeploy, correct data, etc) and then repeat m2 mapping execution from Workflow monitor - open diagram with processflow, select mapping m2 and click button Expedite, choose option Repeat.
    In re-start, will it run m1 again and m2 son on, or will it re-start at row1 of m2?You can specify restart point. "at row1 of m2" - I don't understand what you mean (all mappings run in Set based mode, so in case of error all table updates will rollback,
    but there are several exception - for example multiple target tables in mapping without corelated commit, or error in post-mapping - you must carefully analyze results of error).
    What will happen if m3 fails?Process is suspended and you can restart execution from m3.
    By having without failover and with max.number of errors=0, you achieve re-cycle failed rows to zero (0).This settings guarantee existence only two return result of mapping - SUCCSES or ERROR.
    What is the impact, if we have large volume of data?In my opinion for large volume Set based mode is the prefered processing mode of data processing.
    With this mode you have full range enterprise features of Oracle database - parallel query, parallel DML, nologging, etc.
    Oleg

  • What´s the best approach to work with Excel, csv files

    Hi gurus. I got a question for you. According to your experience what's the best approach to work with Excel or csv files that have to be uploaded through DataServices to you datawarehouse.
    Let's say your end-user, who is not a programmer, creates a group of 4 excel files with different calculations in a monthly basis, so they can generate a set of reports from their datawarehouse once the files have been uploaded to tables in your DWH. The calculations vary from month to month. The user doesn't have a front-end to upload the excel files directly to Data Services. The end user needs to keep a track of which person uploaded the files for a determined month.
    1. The end user should place their 4 excel files in a shared directory that will be seen by DataServices.
    2. DataServices will execute certain scheduled job that will read the four files and upload them to the Datawarehouse at a determined time, lets say at 9:00pm.
    It makes me wonder... what happens if the user needs to present their reports immediately so they can´t wait until 9:00pm.  Is it possible for the end user to execute some kind of action (out of the DataServices Environment) so DataServices "could know" that it has to process those files right now, instead of waiting for the night schedule?
    Is there a way that DS will track who was the person who uploaded those files?
    Would it be better to build a front-end for the end user so they can upload their four files directlyto the datawarehouse?
    Waiting for your comments to resolve this dilemma
    Best Regards
    Erika

    Hi,
    There are functions in DS that captures the input files automatically. You could use file_exists() or wait_for_file() option to do that. Schedule the job to run every certain minute and if the file exists then run. This could be done by using a certain file name with date and timestamp etc or after running move the old files to archive and DS wait for new files to show up.
    Check this - Selective Reading and Postprocessing - Enterprise Information Management - SCN Wiki
    Hope this helps.
    Arun

  • What's the best approach for handeling about 1300 connections in Oracle.

    What's the best approach for handling about 1300 connections in Oracle 9i/10g through a Java application?
    1.Using separate schema s for various type users(We can store only relevant data with a particular schema.     Then No. of records per table can be reduced by replicating tables but we have to maintain all data with a another schema     Then we need update two schema s for a given session.Because we maintain separate scheama for a one user and another schema for all data and then there may be Updating problems)
    OR
    2. Using single schema for all users.
    Note: All users may access the same tables and there may be lot of records than previous case.
    What is the Best case.
    Please give Your valuable ideas

    It is a true but i want a solution from you all.I want you to tell me how to fix my friends car.

  • What is the best approach to converting LV7.1 tags to LV2012 shared variables in multiple VIs?

    What is the best approach to upgrading from LV7.1/DSC tags to LV2012/DSC shared variables, in multiple VIs running on multiple platforms? Our system is composed of  about 5 PCs running Windows 2000/LV7.1 Runtime, plus a PLC, and a main controller running XP/SP3/LV2012. About 3 of the PCs publish sensor information via tags across the LAN to the main controller. Only the main controller is currently being upgraded. Rudimentary questions:
    1. Will the other PCs running the 7.1 RTE (with tags) be able to communicate with the main controller running 2012 (shared variables)?
    2. Is it necessary to convert from tags to shared variables, or will the deprecated legacy tag VIs from LV7.1 work in LV2012?
    3. Will all the main controller VIs need to be incorporated into a project in order to use shared variables?
    4. Is the only way to do this is to find all tag items and replace them with shared variable items?
    Thanks in advance with any information and advice!
    lb
    Solved!
    Go to Solution.

    Hi lb,
    We're glad to hear you're upgrading, but because there was a fundamental change in architecture since version 7.1, there will likely be some portions that require a rewrite. 
    The RTE needs to match the version of DSC your using.  Also, the tag architecture used in 7.1 is not compatible with the shared variable approach used in 2012.  Please see the KnowledgeBase article Do I Need to Upgrade My DSC Runtime Version After Upgrading the LabVIEW DSC Module?
    You will also need to convert from tags to shared variables.  The change from tags to shared variables took place in the transition to LabVIEW 8.  The KnowledgeBase Migrating from LabVIEW DSC 7.1 to 8.0 gives the process for changing from tags to shared variables. 
    Hope this gets you headed in the right direction.  Let us know if you have more questions.
    Thanks,
    Dave C.
    Applications Engineer
    National Instruments

  • What is the best approach to capture TBOM's for a SAP SRM system/functionality?

    Hello SCN Community,
    It would be much appreciated if somebody could share some information about the following....
    What is the best approach to create TBOM's for a SAP SRM system? The SRM functionality is basically consisting out of multiple ABAP Web Dynpro's that are connected as a process via a SAP Portal (as is understand it). The entrypint to the SRM functionality is via the SAP Portal.
    Do I first have to create a link to the Portal via an SAP Web Application link in SOLAR01 and then start recording? Will it record only the portal objects or also the ABAP Web Dynpro objects?
    Do I have to list all the separate ABAP Web Dynpro's in SOLAR01 and use those as a starting point?
    I am myself more familair with more classical SAP ABAP ECC systems and transactions.  I could hardly find any information on the use of BPCA and the required TBOM's in the area of SRM.... Any help would be much appreciated!
    Kind Regards,
    Guido Jacobs

    Hi Guido,
    today was a new blog released, maybe this helps:
    BPCA - Powerful Risk Eliminator
    Best Regards,
    Christoph

  • What is the best approach to take daily backup of application from CQ5 Server ?

    Hello,
    How to maintain daily backup to maintain the data from server.
    What is the best approach.
    Regards,
    Satish Sapate.

    Linking shared from ryan should give enough information. 
    If case backing up large repository you may know Data Store store holds large binaries and are only stored once. To reduce the backup time remove the datastore from the backup by following [1] (CQ 5.3 example)
    [1] In order to remove the datastore from the backup you will need to do the following:
    Assuming your repository is under /website/crx/repository and you want to move your datastore to /website/crx/datastore
        stop the crx instance
        mv /website/crx/repository/shared/repository/datastore /website/crx/
        Then modify repository.xml by adding the new path configuration to the DataStore element.
    Before:
    <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
    <param name="minRecordLength" value="4096"/>
    </DataStore>
    After:
    <DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
    <param name="path" value="/website/crx/datastore"/>
    <param name="minRecordLength" value="4096"/>
    </DataStore>
    After doing this then you can safely run separate backups on the datastore while the system is running without affecting performance very much.
    Following our example, you could use rsync to backup the datstore:
    rsync --av --ignore-existing /website/crx/datastore /website/backup/datastore

  • What is the best approach to trying to find high freq hits in a file?

    Lets say I have a text document that has millions of rows of information like "Name, address, last time checked in:"
    What is the best approach if I were to look for the top 5 people who appears the most on this huge list?
    Thanks!

    If it is not in a database and it's just one fileYou can still put it into a DB.
    with all those data, what approach would be good in
    the realm of Java? I thought I already said that.
    Would Map still be the best
    choice?Simplest? Probably. Best? Only you can determine that.
    Would the complexity be n^2 since you would
    need to put everything in, then compare all the
    sizes?No, it should be O(2N) (which is really O(N)). Inseting into the map is O(N), and then iterating once over the entries and adjusting your running top 5 is O(N).

  • What is the best approach ??

    I want to create an XML document using dynamically (run-time) generated data
    based on a DTD. What is the best approach ?? Should I use xmlDocument or ...

    Hi,
    Have a look at JAXP:
    http://java.sun.com/xml/jaxp/dist/1.1/docs/tutorial/index.html
    Regards,
    Slava Imeshev
    "vignette" <[email protected]> wrote in message
    news:[email protected]..
    I want to create an XML document using dynamically (run-time) generateddata
    based on a DTD. What is the best approach ?? Should I use xmlDocument or...

  • What is the best way to transfer data from a PC to an iMac?

    What is the best way to transfer data from a PC to an iMac?

    If you know how to set up a computer-to-computer Ethernet network, then you can give that a try, but a hard drive will be faster than Ethernet unless you don't have a lot to transfer.
    Mac OS X 10.6 Help- Creating a computer-to-computer network

  • What is the best free word processing or office program for OS X Mountain Lion

    What is the best free word processing or office program for OS X Mountain Lion?

    "Best" is quite subjective. As William points out, TextEdit may be the "best" in someones eyes as it isn't cludged up with crap you don't need.
    What are your requirements?
    Basic text editing?
    Do you need:
    Table of Contents
    Index
    Footnote/endnote management
    Different headers/footers
    Page Layout
    What are you going to use it for?
    Technical Reports
    Screenplay
    Leaflets and newsletters
    Coding

  • Newbie: What is the best approach to integrate BO Enterprise into web app

    Hi
    1. I am very new to Business Objects and .Net. I need to know what's the best approach
    when intergrating bo into my web app i.e which sdk do i use?
    For now i want to provide very basic viewing functionality for the following reports :
    -> Crystal Reports
    -> Web Intellegence Reports
    -> PDF Reports
    2. Where do i find a standalone install for the Business Objects Enteprise XI .Net providers?
    I only managed to find the wssdk but i can't find the others. Business Objects Enteprise XI
    does not want to install on my machine (development) - installed fine on server, so i was hoping i could find a standalone install.

    To answer question one, you can use the Enterprise .NET SDK for each, though for viewing Webi documents it is much easier to use the opendocument method of URL reporting to view them.
    The Crystal Reports and PDF instances can be viewed easily using the SDK.
    Here is a link to the Developer Library:
    [http://devlibrary.businessobjects.com/]
    VB.NET XI Samples:
    [http://support.businessobjects.com/communityCS/FilesAndUpdates/bexi_vbnet_samples.zip.asp]
    C# XI Samples:
    [http://support.businessobjects.com/communityCS/FilesAndUpdates/bexi_csharp_samples.zip.asp]
    Other samples:
    [https://boc.sdn.sap.com/codesamples]
    I answered the provider question on your other thread.
    Good luck!
    Jason

  • What is the best approach to install BI statistics in SAP BI ?

    Hello All,
    what is the best approach to install BI statistics in SAP BI ?
    by collecting objects in standard BI content- 0TCT*objects or
    by executing some standard tcodes.
    Regards,
    Siva

    the best approach is based on version of your BW system follow up install steps in notes:
    BW 3.x:
    309955 - BW statistics - Questions, answers and errors
    BW 7.x
    934848 - Collective note: (FAQ) BI Administration CockpitBW 7.x
    Cheers,
    m./

  • What's the best approach/program for finding and eliminating duplicate photos on my hard drive?

    What's the best approach/program for finding and eliminating duplicate photos on my hard drive? I have a "somewhat" older version of iPhoto (5.0.4), and it doesn't seem to offer anything like that except during the importing phase of syncing my phone...

    I wonder, is there room to transfer them to your phone, & then back to filter them?

Maybe you are looking for

  • Need to capture the excise for the excise tab missing item in GR

    Hi Masters     Our users has done MIGO with one line item(for Material A) with excise item tab and other line item(fro MAterial B) without excise item tab(non availability of Chapter ID). They are able to capture excise in J1IEX for the first item on

  • Getting the user name and computer name

    I've been trying to find out how to do this, but can't seem to get it. I have an AIR application that needs to get the user's login name, and computer name for verification.  I can't find anywhere to do this.  Is AIR able to get this information? Is

  • MIRO using Bill of Lading as Reference

    Hello, I have a PO and a Goods Receipt entered using MIGO.  I have input the Bill of Lading number on the General Tab Page of the Goods Receipt.  Now I would like to carry out LIV using reference to the Bill of Lading number but the system gives me t

  • MP3 issue in Slideshow module

    HI In Slideshow Module, LR3 does not read correctly the .MP3 files (soundtrack checked) . Could anybody help me? Thanks; Christian

  • Where is extension registration data stored?

    I just bought a new computer, and I use the full suite of Pluginlab extensions extensively on several sites. However, it appears that they have gone out of business, so I cannot get my products re-activeated (license moved) to my new computer. I'm ho