| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.misc -> Cursor problem
I am trying to compile the following code, but get the following error (see
below):
Here is the query:
DECLARE
v_freight1 VARCHAR2(20); v_freight2 VARCHAR2(20); v_freight3 VARCHAR2(20); v_freight4 VARCHAR2(20); v_freight5 VARCHAR2(20); v_freight6 VARCHAR2(20); v_bol VARCHAR2(20);
v_carrier VARCHAR2(10); c_flag CHAR(1); d_rate NUMBER(18,4); v_uom VARCHAR2(10); i_agn NUMBER; v_io CHAR(1); i_group_nbr NUMBER;
CURSOR curs_group IS
SELECT DISTINCT qe.bill_of_lading,
qe.bill_of_lading_date,
qe.freight_carrier_id,
qe.rate_per_ticket_flag,
qe.freight_charge_rate,
qe.freight_charge_uom_code,
fs.freight1,
fs.freight2,
fs.freight3,
fs.freight4,
fs.freight5,
fs.freight6,
qe.scale_ticket_inbound_outbound,
qea.group_nbr
FROM s1_quantity_entry qe,
s1_quantity_entry_accrual qea,
(SELECT qe.quantity_entry_nbr,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 1
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight1,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 2
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight2,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 3
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight3,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 4
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight4,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 5
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight5,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 6
AND s1_quantity_entry_freight_seal.quantity_entry_nbr =
s1_quantity_entry.quantity_entry_nbr),'-1') AS freight6
FROM s1_quantity_entry
WHERE qe.quantity_entry_source = 'IE'
) AS fs
WHERE qe.quantity_entry_source = 'IE'
AND qe.quantity_entry_nbr = fs.quantity_entry_nbr
AND qe.bill_of_lading IS NOT NULL
AND qe.freight_carrier_id IS NOT NULL
AND qe.quantity_entry_nbr = qea.quantity_entry_nbr(+)
AND ((qe.freight_charge_rate IS NOT NULL) OR
(fs.freight1 <> '-1') OR
(fs.freight2 <> '-1') OR
(fs.freight3 <> '-1') OR
(fs.freight4 <> '-1') OR
(fs.freight5 <> '-1') OR
(fs.freight6 <> '-1') OR
qea.group_nbr IS NOT NULL
)
LOOP
FETCH curs_group INTO v_bol,
dt_bol_date,
v_carrier,
c_flag,
d_rate,
v_uom,
v_freight1,
v_freight2,
v_freight3,
v_freight4,
v_freight5,
v_freight6,
v_io,
i_group_nbr;
EXIT WHEN curs_group%NOTFOUND;
SELECT accrual_group_nbr + 1
INTO i_agn
FROM s1_max_key;
UPDATE s1_max_key
SET accrual_group_nbr = i_agn;
UPDATE s1_quantity_entry
SET freight_group_nbr = i_agn
WHERE quantity_entry_nbr IN
(SELECT qe.quantity_entry_nbr
FROM s1_quantity_entry qe,
(SELECT qe.quantity_entry_nbr,
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 1
AND
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 2
AND
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 3
AND
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 4
AND
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 5
AND
NVL((SELECT freight_seal_tag
FROM s1_quantity_entry_freight_seal
WHERE sort_order = 6
AND
FROM s1_quantity_entry qe
WHERE qe.quantity_entry_source = 'IE'
) AS fs
WHERE qe.quantity_entry_nbr = fs.quantity_entry_nbr
AND qe.quantity_entry_source = 'IE'
AND qe.bill_of_lading IS NOT NULL
AND qe.freight_carrier_id IS NOT NULL
AND ((i_group_nbr IS NULL
AND NOT EXISTS (SELECT 1
FROM s1_quantity_entry_accrual
WHERE
s1_quantity_entry_accrual.quantity_entry_nbr = qe.quantity_entry_nbr
)
) OR (EXISTS (SELECT 1
FROM s1_quantity_entry_accrual
WHERE
s1_quantity_entry_accrual.quantity_entry_nbr = qe.quantity_entry_nbr
AND
s1_quantity_entry_accrual.group_nbr = i_group_nbr
)
)
)
AND ((qe.freight_charge_rate IS NOT NULL) OR
(fs.freight1 <> '-1') OR
(fs.freight2 <> '-1') OR
(fs.freight3 <> '-1') OR
(fs.freight4 <> '-1') OR
(fs.freight5 <> '-1') OR
(fs.freight6 <> '-1') OR
i_group_nbr IS NOT NULL
)
AND qe.bill_of_lading = v_bol
AND qe.freight_carrier_id = v_carrier
AND (dt_bol_date IS NULL OR qe.bill_of_lading_date = dt_bol_date)
AND qe.rate_per_ticket_flag = c_flag
AND (d_rate IS NULL OR qe.freight_charge_rate = d_rate)
AND (v_uom IS NULL OR qe.freight_charge_uom_code = v_uom)
AND (v_freight1 = '-1' OR fs.freight1 = v_freight1)
AND (v_freight2 = '-1' OR fs.freight2 = v_freight2)
AND (v_freight3 = '-1' OR fs.freight3 = v_freight3)
AND (v_freight4 = '-1' OR fs.freight4 = v_freight4)
AND (v_freight5 = '-1' OR fs.freight5 = v_freight5)
AND (v_freight6 = '-1' OR fs.freight6 = v_freight6)
AND (qe.scale_ticket_inbound_outbound = v_io)
);
END LOOP; CLOSE curs_group;
END;
/
Here is the error:
NVL((SELECT freight_seal_tag
*
ORA-06550: line 36, column 18: PLS-00103: Encountered the symbol "SELECT" when expecting one of the following:
If I am reading the above error correctly, it seems to object to the inline view in the cursor.
Any suggestions??
Thanks
Murray Sobol
dbcSMARTsoftware inc.
Received on Fri Jun 18 2004 - 10:14:02 CDT
![]() |
![]() |