Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Ordered Inline View
This is a multi-part message in MIME format.
------=_NextPart_000_01D4_01BFCAF0.206B2DC0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
I think, I found a solution: use Dynamic (Native) SQL:
declare lDate date;
begin
EXECUTE IMMEDIATE 'SELECT cycle_date_time=20
FROM( SELECT /*+ FIRST_ROWS */ cycle_date_time
FROM CYCLE WHERE cycle_date_time < SYSDATE
AND gauge_id =3D 2
ORDER BY cycle_date_time DESC)
WHERE ROWNUM < 2' INTO lDate;
dbms_output.put_line(to_char(lDate, 'mm/dd/yyyy hh24:mi:ss'));
end;
/
But, is there any other option?
Igor Neyman, OCP DBA
Perceptron, Inc.
(734)414-4627
ineyman_at_perceptron.com
=20
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_01D4_01BFCAF0.206B2DC0
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 think, I found a solution: use Dynamic (Native)=20SQL:</FONT></DIV>
<DIV> </DIV> <DIV> <P>declare lDate date;</P> <P>begin</P> <P>EXECUTE IMMEDIATE 'SELECT cycle_date_time </P> <P>FROM(</P> <P>SELECT /*+ FIRST_ROWS */ cycle_date_time</P> <P>FROM CYCLE</P> <P>WHERE cycle_date_time < SYSDATE</P> <P>AND gauge_id =3D 2</P> <P>ORDER BY cycle_date_time DESC)</P> <P>WHERE ROWNUM < 2' INTO lDate;</P> <P>dbms_output.put_line(to_char(lDate, 'mm/dd/yyyy hh24:mi:ss'));</P> <P>end;</P> <P>/</P> <P>But, is there any other option?</P></DIV> <DIV> </DIV> <DIV>Igor Neyman, OCP DBA<BR>Perceptron, Inc.<BR>(734)414-4627<BR><A=20href=3D"mailto:ineyman_at_perceptron.com">ineyman_at_perceptron.com</A><BR>&nbs= p;=20
31:<BR>PLS-00103: Encountered the symbol ")" when expecting one of the =
<BR>following:<BR>, ; for</FONT></DIV> <DIV> </DIV> <DIV><FONT size=3D2>SQL> </FONT></DIV> <DIV> </DIV> <DIV><FONT size=3D2>It looks, like PL/SQL engine does not like ordered =inline=20
<DIV> </DIV> <DIV><FONT size=3D2>TIA<BR></FONT></DIV> <DIV><FONT size=3D2>Igor Neyman, OCP DBA<BR>Perceptron,=20Received on Wed May 31 2000 - 10:05:27 CDT
![]() |
![]() |