BIG PROBLEM: pl/sql cursor blocks resulting in scrambeled data ??? [HELP]

From: Neil Greene <neil_at_kynug.org>
Date: Fri, 8 Apr 1994 16:28:28 GMT
Message-ID: <1994Apr8.162828.5617_at_KYnug.org>


System Details:         

	NeXTCube - NEXTSTEP 3.2
	ORACLE RDBMS V6.0.30.3.1
	SQL*Plus: Version 3.0.8.1.1
	PL/SQL V1.0.30.1.1

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-4864
Received on Fri Apr 08 1994 - 18:28:28 CEST

Original text of this message