[Date Prev][Date Next][Thread Prev][Thread Next]
[Author Index]
[Date Index]
[Thread Index]
[SQR-USERS Info]
[SQRUG Home Page]
[no subject]
You can accomplish the same function of a FOR loop using a WHILE loop. For
the situation you describe, to follow your pseudocode, you should do the
following.
#Incr = 1
#LocType1 = 10
#LocType2 = 20
#LocType3 = 35
WHILE #Incr <= 3
Evaluate #Incr
When = 1
Let $LocTypeCondition = 'LOCTYPE = #LocType1'
Break
When = 2
Let $LocTypeCondition = 'LOCTYPE = #LocType2'
Break
When = 3
Let $LocTypeCondition = 'LOCTYPE = #LocType 3'
Break
End-Evaluate
BEGIN-SELECT
FIELD_A
FIELD_B
FIELD_C
FROM ADDR_TABLE
WHERE [$LocTypeCondition]
END-SELECT
BEGIN-SQL
INSERT INTO PS_VENDOR_ADDR (A,B,C) VALUES (&FIELD_A, &FIELD_B, &FIELD_C)
END-SQL
Let #Incr = #Incr + 1
END-WHILE
However, I would think the same could be accomplished using an INSERT
INTO...SELECT Syntax such as
BEGIN-SQL
INSERT INTO PS_VENDOR_ADDR (A,B,C)
SELECT A,B,C
FROM ADDR_TABLE
WHERE LOCTYPE IN (10,20,35)
END-SQL
Unless there is some type of key mismatch...
Have Fun...
----- Original Message -----
From: Vikram Muratee <vmuratee@ATT.NET>
To: Multiple recipients of list SQR-USERS <SQR-USERS@list.iex.net>
Sent: Tuesday, April 13, 1999 9:45 PM
> hello all,
>
> I will greatly appreciate some views on my problem.
>
> I am on Oracle 7.3 and SQR 4.3 (and PS 7.5). I am trying
> to get the equivalen of a "FOR " Loop in SQR. (Which I
> understand is not available in SQR)
>
> I am attempting something like the pseudo code below.
> The objective is that I am picking up three rows for one
> VENDOR from a single source table and inserting three
> rows into one target table (PS_VENDOR_ADDR).
>
> I would greatly appreciate some direction on how to
> emulate the
> below pseudo code in SQR :
>
> #INCR=0;
> #LOCTYPE1 =10;
> #LOCTYPE3 =20;
> #LOCTYPE2 = 35;
>
> FOR #INCR 1 TO 3 (EVALUATE #INCR
> WHEN =1
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE =#LOCTYPE1;
> WHEN =2
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE=#LOCTYPE2;
> WHEN =3
> select $a,$b,$c from ADDR_TABLE WHERE LOCTYPE=#LOCTYPE3;
> WHEN OTHER
> EXIT;
> INSERT $a,$b,$c INTO target_table !(as address
> seqno#INCR)
> #INCR+1 )
> !!The earlier you can help the better our whole team is
> doing 12-14 hrs a day to catch deadlines !!
>
> Thanks in advance,
>
> vikram