Link to home
Start Free TrialLog in
Avatar of john1953
john1953

asked on

Need Help-Selecting specific rows to update

Below is a Oracle 9i PL/SQL statements I am trying to run.  I am receiving an ORA-00933 error (SQL command not properly ended).  
============================================================================
These are the tables invovled:

CREATE TABLE PRISMM.DOCRELATION
(
  DOCRELATION_PK    NUMBER(10),
  DOCPARENTNAME    VARCHAR2(30 BYTE),
  DOCPARENT             NUMBER(10),
  DOCCHILDNAME       VARCHAR2(30 BYTE),
  DOCCHILD                NUMBER(10)
)


CREATE TABLE PRISMQ.RESERVATION
(
  RESERVATION_PK                          NUMBER(10),
  ROOMSTAYRESERVATION              VARCHAR2(10 BYTE),
  CONFIRMATIONID                          VARCHAR2(20 BYTE),
  RESERVATIONID                            VARCHAR2(20 BYTE),
  RESERVATIONORIGINATORCODE   VARCHAR2(10 BYTE),
  ORIGINALBOOKINGDATE                DATE,
  CANCELLATIONID                           VARCHAR2(20 BYTE),
  CANCELORIGINATORCODE             VARCHAR2(10 BYTE),
  CANCELLATIONDATE                      DATE,
  STAYDATERANGE                           DATE,
  RECTYPE                                        VARCHAR2(10 BYTE),
  WEEKNUMBER                                VARCHAR2(40 BYTE),
  ORIGINALUSERID                           VARCHAR2(10 BYTE),
  LASTCHANGEUSERID                      VARCHAR2(10 BYTE),
  LASTCHANGEDATE                         DATE,
  RESERVATION_DBDATE                 DATE,
  RESV_RESCOMMENT_FK                 NUMBER(10),
  RESV_SELECTEDMEMBERSHIP_FK  NUMBER(10),
  RESV_RESGUEST_FK                      NUMBER(10),
  RESV_SPECIALREQUEST_FK           NUMBER(10),
  RESV_SERVICE_FK                         NUMBER(10),
  RESV_ROOMSTAY_FK                    NUMBER(10),
  RESV_PROFILE_FK                         NUMBER(10),
  RESV_HOTELREFERENCE_FK         NUMBER(10),
  RESV_LEGACYPROFILE_FK             NUMBER(10),
  RESV_RESVMARKETING_FK           NUMBER(10)
)

========================================================================
What I am trying to do is to select and update specific rows in table "PRISMQ.RESERVATION" where the
" r. reservation_dbdate" equals to todays date (in mm/dd/yyyy format).  The values stored in the " r.reservation_dbdate" column is in mm/dd/yyyy.

All other rows where the " r.reservation_dbdate" does not equal to todays date I want to dropped it from further processing.

If a row does equal to todays date I then want to further qualify for updating by comparing to  table "prismm.docrelation".

This is done by:

     1.   comparing the value stored in column  "d.docparent" (prismm.docrelation) to "r.reservation_pk "   
           (prismq.reservation)
     2.   d.docparentname equals to "RESERVATION"
     3.   d.docchildname equals to "LEGACYPROFILE"

If any of the above three conditions fails I want to drop the row in "PRISMQ.RESERVATION" from any further update consideration.


Let me know if there is a better way of coding.

Here is the SQL code in question
=========================================================================
UPDATE PRISMQ.RESERVATION r
   SET resv_legacyprofile_fk =
       (SELECT r.reservation_pk  FROM PRISMM.RESERVATION r
           WHERE TRUNC(SYSDATE) = r.reservation_dbdate)
               
 SELECT d.docchild FROM prismm.docrelation d
     WHERE r.reservation_pk  = d.docparent
         AND d.docparentname = 'RESERVATION'
         AND d.DOCCHILDNAME = 'LEGACYPROFILE';
            
COMMIT;




Thanks.
ASKER CERTIFIED SOLUTION
Avatar of jdlambert1
jdlambert1
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of john1953
john1953

ASKER

thanks.  jdlambert1 and vijayaja were a big help.