Advertisement

08.01.2007 at 06:55AM PDT, ID: 22734563
[x]
Attachment Details

PL/SQL cursor question

Asked by wjseaman in Databases Miscellaneous, Oracle Database, PL / SQL

Tags: cursor, sql

I am trying to correct this PL/SQL code (9i database) to update correctly.  I am getting the error ORA-01427: single-row subquery returns more than one row because there can be the same value for rcrapp3_yr_in_coll_2 for different rcrapp1_pidms/rcrapp3_pidms.

UPDATE rprlcrt
   SET rprlcrt_clas_code =
          (SELECT rcrapp3_yr_in_coll_2
                      FROM rcrapp3, rcrapp1
                     WHERE rcrapp1_curr_rec_ind = 'Y'
                       AND RCRAPP1_INFC_CODE = 'EDE'
                       AND RCRAPP1_INFC_CODE = RCRAPP3_INFC_CODE
                       AND RCRAPP1_SEQ_NO = RCRAPP3_SEQ_NO
                       AND rcrapp1_aidy_code = '0708'
                       AND rcrapp1_pidm = rcrapp3_pidm
                       AND rcrapp3_aidy_code = '0708'
                       AND rcrapp3_yr_in_coll_2 <> '0')
 WHERE rprlcrt_cint_code IS NULL AND rprlcrt_cert_date IS NULL;
*********************************************************************************************************************************
I guess I need a cursor to cycle thru the table RPRLCRT for each ID and update with the nested subquery.  Here is my attempt to write a cursor.  Please advise

CREATE OR REPLACE PROCEDURE update_loans_1
IS
  v_rprlcrt_pidm  NUMBER;
  CURSOR c_select_pidm
  IS
     SELECT rprlcrt_pidm
      FROM RPRLCRT
     WHERE rprlcrt_cint_code IS NULL AND rprlcrt_cert_date IS NULL;

BEGIN
    OPEN c_select_pidm;

    LOOP
       FETCH c_select_pidm
          INTO v_rprlcrt_pidm;
            SELECT rcrapp3_yr_in_coll_2
                      FROM rcrapp3, rcrapp1
                     WHERE rcrapp1_curr_rec_ind = 'Y'
                       AND RCRAPP1_INFC_CODE = 'EDE'
                       AND RCRAPP1_INFC_CODE = RCRAPP3_INFC_CODE
                       AND RCRAPP1_SEQ_NO = RCRAPP3_SEQ_NO
                       AND rcrapp1_aidy_code = '0708'
                       AND rcrapp1_pidm = rcrapp3_pidm
                       AND rcrapp3_aidy_code = '0708'
                       AND rcrapp3_yr_in_coll_2 <> '0'
                       AND rcrapp1_pidm = v_rprlcrt_pidm;
                       COMMIT;
            EXIT WHEN c_select_pidm%NOTFOUND;
     END LOOP;
END;




Start Free Trial
[+][-]08.01.2007 at 07:06AM PDT, ID: 19608866

Assisted solutions are selected by the member who asked the question as a comment that contributed to their question's solution.

Start your 7-day free trial to view this Assisted Solution or ask the Experts your question.

 
[+][-]08.01.2007 at 07:09AM PDT, ID: 19608896

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 7-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 07:23AM PDT, ID: 19609010

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 7-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:06AM PDT, ID: 19609498

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:13AM PDT, ID: 19609577

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:28AM PDT, ID: 19609744

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 7-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:44AM PDT, ID: 19609893

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:53AM PDT, ID: 19609987

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 7-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 08:57AM PDT, ID: 19610031

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 7-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]08.01.2007 at 09:08AM PDT, ID: 19610164

View this solution now by starting your 7-day free trial. Setting up your free trial is quick, easy, and secure. We will return you to this solution, unlocked, when you're done.

 

About this solution

Zones: Databases Miscellaneous, Oracle Database, PL / SQL
Tags: cursor, sql
Sign Up Now!
Solution Provided By: YANN0S
Participating Experts: 3
Solution Grade: A
 
 
 
Loading Advertisement...
20080716-EE-VQP-32