Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: 2/28/01 - PL/SQL Syntax Request

RE: 2/28/01 - PL/SQL Syntax Request

From: Dasko, Dan <Dan.Dasko_at_cdicorp.com>
Date: Wed, 28 Feb 2001 11:16:24 -0800
Message-ID: <F001.002BFD13.20010228103022@fatcity.com>

Well, it sounds like what you want to do is read the table into a cursor and if there is nothing else unique about the rows, the rowid. Then loop through the cursor checking for your true condition and if it is, then update the row, commit and continue until the cursor is empty.

DECLARE
  CURSOR blah IS

        SELECT * FROM table;
BEGIN
  FOR v_whatever IN blah LOOP

        IF v_whatever.column_name = xyz THEN
                UPDATE table SET column_name = new_whatever WHERE condition
identifying this row as unique;
                COMMIT;
        END IF;

  END LOOP:
END; You get the picture. There is also a cursor construct select for update which may be more appropriate.

Dan

-----Original Message-----
Sent: Wednesday, February 28, 2001 11:41 AM To: Multiple recipients of list ORACLE-L

I need help. I'm sorry if this is a cross-posting for you.

I'd like to see some example PL/SQL code, perhaps a procedure, that will pass
through each record of a table, test for combinations of column values and based upon
a specific value (which would be determined by an IF... THEN... matrix), set a variable.
The value stored in this variable would then be used to update a different column of the
very same table from which the original record was read.

The matrix:

(IF)                           (THEN)
Key     A     M     C          one     two     three     four     five

CA      IND   1     1          CZ      STA     OFF       BOO      AD
CA      IND   3     1          CZ      STA     OFF       REP      AD
CA      IND   1     4          CZ      STA     OFF       AV       AD

...
PH IND 1 1 PH STA OFF BOO PO PH OUT 1 1 PH REF NULL RBO PO

...
...

The data table IN (before processing):

Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9

CA       IND      3        1
CA       IND      3        1
PH       IND      1        1
CA       IND      1        4
PH       OUT      1        1
CA       IND      3        1

...
...

The data table OUT (after processing):

Col1 Col2 Col3 Col4 Col5 Col6 Col7 Col8 Col9

CA IND 3 1 CZ STA OFF REP AD
CA IND 3 1 CZ STA OFF REP AD
PH IND 1 1 PH STA OFF BOO PO
CA IND 1 4 CZ STA OFF AV AD
PH OUT 1 1 PH REF NULL RBO PO
CA IND 3 1 CZ STA OFF REP AD
...
...

I'm looking for the PL/SQL code syntax to perform a task such as this.

Wow. That was a mouthful. Good discipline.

Any and all help will be appreciated.


Pat Gorden-Ozgul               BNL-ISD Systems
gorden_at_bnl.gov                 631-344-5159





-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Gorden-Ozgul, Patricia E
  INET: gorden_at_bnl.gov

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).

_____________________________________________________________________
This message has been checked for all known viruses by UUNET delivered 
through the MessageLabs Virus Control Centre. For further information visit
http://www.uk.uu.net/products/security/virus/
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Dasko, Dan
  INET: Dan.Dasko_at_cdicorp.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Wed Feb 28 2001 - 13:16:24 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US