#13907 [Opn->Bgs]: Oracle Fetch row by row number
| From: | tony2001@php.net | Date: | Mon, 03 Apr 2006 07:57:09 +0000 |
| Subject: | #13907 [Opn->Bgs]: Oracle Fetch row by row number | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-95238@lists.php.net to get a copy of this message | ||
ID: 13907
Updated by: tony2001@php.net
Reported By: jh at synergy dot cx
-Status: Open
+Status: Bogus
Bug Type: Feature/Change Request
Operating System: all
PHP Version: 4.0.6
Assigned To: maxim
New Comment:
Yes, you have to emulate LIMIT in Oracle using 3 nested SELECTs. This
is the way it works.
Previous Comments:
------------------------------------------------------------------------
[2003-01-30 06:29:17] maxim@php.net
Just to follow up:
Yes, to select the first 6 rows you can use subselects (besides there
are other methods):
SELECT * FROM
(SELECT ename, hiredate FROM emp ORDER BY hiredate)
WHERE ROWNUM < 6
Nevertheless, you still have selected the full stream in the
subselected query *and* from the received result you've extracted the
first 6 rows.
What I am wondering here is, whether it could actually make any sense
of having the offset functions that pretty much limit the Fetch loop
inside OCI8 extension.
Doesn't seem to me a clean method, but if this saves on speed and
functionality/usability there is then a space for this function.
Will look into it in details
------------------------------------------------------------------------
[2003-01-30 06:23:40] maxim@php.net
It is probably true. Will soon close it as bogus. I am still curious to
see whether there is any "technical" way for it through OCI first.
------------------------------------------------------------------------
[2003-01-29 12:07:11] michael dot mauch at gmx dot de
Probably he/she doesn't really need a new function, but only a hint how
to simulate the limit/offset syntax of MySQL/Postgresql.
Without the help of <http://www.dclp-faq.de/q/q-oracle-limit.html>
(in
German, but not much text), I certainly would not know how to do it,
although I asked our local SQL gurus.
------------------------------------------------------------------------
[2003-01-29 08:59:05] maxim@php.net
Well, this wouldn't make much sence as this should be controlled by
your SQL. What's the point to grab the whole table in your buffer to
then fetch only a few rows somewhere in the middle?
Anyhow, will assign it to myself for now.
------------------------------------------------------------------------
[2001-11-02 05:37:16] jh at synergy dot cx
Currently there's no way of fetching a row by row number.
OCIFetchStatement() fetches all rows returned by a query.
OCIFetchInto() only allows to return the NEXT row.
It would make sense to be able to selectively fetch a subset of rows or
single rows by row number for large
row lists.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=13907&edit=1