BIG PROBLEM: pl/sql cursor blocks resulting in scrambeled data ??? [HELP]
Date: Fri, 8 Apr 1994 16:28:28 GMT
Message-ID: <1994Apr8.162828.5617_at_KYnug.org>
I have a PL/SQL procedure that sets up a cursor, looks at the values and makes various inserts based on these values. Somehow, these values for name fields are getting transpossed and scrambeled and I can not figure how or why. Here is a snipet from the PL/SQL procedure:
> DECLARE
>
> CURSOR NEWLICENSE IS
> SELECT
> MYNASRISID, FNAME, LNAME, MNAME, SSN, BIRTHDATE,
> LICENSECODE, ISSUEDATE, EXPIREDATE, DIVISION
> FROM
> BI_LICENSES
> WHERE
> LOADSEQ = '1';
>
> MYNASRISID BI_LICENSES.MYNASRISID%TYPE;
> FNAME BI_LICENSES.FNAME%TYPE;
> LNAME BI_LICENSES.LNAME%TYPE;
> MNAME BI_LICENSES.MNAME%TYPE;
> SS BI_LICENSES.SSN%TYPE;
> BIRTHDATE BI_LICENSES.BIRTHDATE%TYPE;
> LICENSECODE BI_LICENSES.LICENSECODE%TYPE;
> ISSUEDATE BI_LICENSES.ISSUEDATE%TYPE;
> EXPIREDATE BI_LICENSES.EXPIREDATE%TYPE;
> DIVISION BI_LICENSES.DIVISION%TYPE;
> tmpFNAME MASTER.FNAME%TYPE;
> tmpMNAME MASTER.MNAME%TYPE;
> tmpLNAME MASTER.LNAME%TYPE;
> tmpSS MASTER.SS%TYPE;
>
>
> BEGIN
> OPEN NEWLICENSE;
> LOOP
> FETCH NEWLICENSE INTO MYNASRISID, FNAME, LNAME, MNAME,
> SS, BIRTHDATE, LICENSECODE, ISSUEDATE,
> EXPIREDATE, DIVISION;
> EXIT WHEN NEWLICENSE%NOTFOUND;
>
> // Store the source values in temporary variables > //
> tmpFNAME := FNAME;
> tmpMNAME := MNAME;
> tmpLNAME := LNAME;
> tmpSS := SS;
>
> IF MYNASRISID IS NULL THEN
>
> INSERT INTO tmp_NAMEVALUES VALUES (
> FNAME, tmpFNAME,
> MNAME, tmpMNAME,
> LNAME, tmpLNAME,
> SS, tmpSS
> );
>
> INSERT INTO MASTER_TMP (NASRISID, SS, LNAME,
> FNAME, MNAME, BIRTHDATE, ENTRYDATE,
> LOADSEQ, LOADCOMM)
> VALUES (
> SEQ_NASRISID.NEXTVAL, SS, LNAME,
> FNAME, MNAME, BIRTHDATE, SYSDATE, '1',
'BRC'
> );
>
> INSERT INTO LICENSES_TMP VALUES (
> SEQ_LICENSEID.NEXTVAL,
> SEQ_NASRISID.CURRVAL, LICENSECODE,
> 'XX', ISSUEDATE, EXPIREDATE, 'BRC',
> DIVISION, NULL, NULL, SYSDATE, NULL,
> NULL, NULL, NULL, 'BRC', '1'
> );
A summary of what goes wrong is on inserts into the table MASTER_TMP. The values for FNAME, MNAME and LNAME can get scrabeled somehow. I have set up a temporary table to catch these values and this is noted in the insert into table tmp_NAMEVALUES which holds the origional values and values which should be equal to these origional values in variables tmpSS, tmpFNAME, etc., etc., Here is the output from that table where these values DO NOT EQUAL EACH OTHER:
> SOURCE_FNAME DEST_FNAME SOURCE_LNAME DEST_LNAME SOURCE_SS
> ------------ ------------ ------------ ------------ ---------
> JORDAN ANRDAN ANSE ROSE 420085825
> ELAINE NEAINE NECAS SUCAS 419944241
> DOROTHY THYOTHY THYLIAMS IAMSIAMS 416765475
> DERRICK ICKRICK ICKGESS ESSGESS 418170610
> TIQUILA ILAUILA ILAWNING NINGNING 420983299
> PATRICE ICERICE ICEROW OWRROW 403295429
> LARRY YARRY YRANT TRANT 424884721
> NANCY YANCY YRIMES ESIMES 182627892
> MICHAEL AELHAEL AELASHER SHERSHER 420062994
> STACY YTACY YULLARD ARDLARD 424135545
> ELAINE NEAINE NELES SILES 419663101
As you can see, the SOURCE values are correct. However, these DEST values
are scrambeled somehow. Does anyone have any clue as to what can cause
this problem or why it happens? I have been trying to contact my Oracle
rep but I have not had any luck. A tar logged with Oracle has not
returned anything either.
--- Neil Greene Association of Racing Commissioners International, Inc. 4067 Iron Works Pike, Lexington, KY 40511 Phone: 606-254-4060 Email: Neil_at_KYnug.org [NeXTmail] -- Neil Greene benchMark Developments, Inc. [NeXT VAR] 2040 Regency Road, Suite C Lexington, KY 40503 Phone: 606-231-6599 / Fax: 606-254-4864Received on Fri Apr 08 1994 - 18:28:28 CEST