Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Ordered Inline View
This is a multi-part message in MIME format.
------=_NextPart_000_01AC_01BFCAE9.0B569E80 Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
I have the followingproblem, when using ordered inline view. When I execute a single sql-statement (from SQL*PLUS):
SELECT /*+ FIRST_ROWS */ cycle_date_time
FROM CYCLE
WHERE cycle_date_time < SYSDATE AND gauge_id =3D 2 AND model_id =3D 16 ORDER BY cycle_date_time ASC) WHERE ROWNUM < 2;
it works fine.
But, when I put this statement into PL/SQL block, I am getting=20
an error:
SQL> declare lDate date;
2 begin
3 SELECT cycle_date_time INTO lDate
4 FROM(
5 SELECT /*+ FIRST_ROWS */ cycle_date_time
6 FROM CYCLE
7 WHERE cycle_date_time < SYSDATE 8 AND gauge_id =3D 2 9 AND model_id =3D 16 10 ORDER BY cycle_date_time ASC) 11 WHERE ROWNUM < 2;
ORA-06550: line 10, column 31: PLS-00103: Encountered the symbol ")" when expecting one of the=20 following:
SQL>=20
It looks, like PL/SQL engine does not like ordered inline views=20
(though they work fine in SQL).
Do you know, if this is a known bug?
Or, there is any workaround?
TIA
Igor Neyman, OCP DBA
Perceptron, Inc.
(734)414-4627
ineyman_at_perceptron.com
=20
------=_NextPart_000_01AC_01BFCAE9.0B569E80 Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Diso-8859-1" =
http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2314.1000" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT size=3D2>I have the followingproblem, when using ordered =
inline=20
view.<BR>When I execute a single sql-statement (from =
SQL*PLUS):</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=3D2>SELECT /*+ FIRST_ROWS */ =
cycle_date_time<BR> =20
FROM CYCLE<BR> WHERE cycle_date_time <=20
SYSDATE<BR> AND gauge_id =3D=20
2<BR> AND model_id =3D =
16<BR> =20
ORDER BY cycle_date_time=20
ASC)<BR> WHERE ROWNUM =
<=20
2;</FONT></DIV>
<DIV> </DIV>
<DIV><FONT size=3D2>it works fine.<BR>But, when I put this statement =
into PL/SQL=20
block, I am getting <BR>an error:<BR>SQL> declare lDate =
date;<BR> =20
2 begin<BR> 3 SELECT cycle_date_time INTO=20
lDate<BR> 4 FROM(<BR> 5 SELECT =
/*+=20
FIRST_ROWS */ cycle_date_time<BR> 6 FROM =
CYCLE<BR> =20
7 WHERE cycle_date_time < SYSDATE<BR> =20 8 AND gauge_id =3D 2<BR> =20 9 AND model_id =3D =16<BR> 10 =20