<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comentarios en: Oracle con consultas Limit de mySQL</title>
	<atom:link href="http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/</link>
	<description>Bitácora y apuntes técnicos</description>
	<pubDate>Wed, 07 Jan 2009 22:23:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>Por: MarceloH</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-16359</link>
		<dc:creator>MarceloH</dc:creator>
		<pubDate>Tue, 12 Aug 2008 16:47:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-16359</guid>
		<description>Estimado Asier, estaba probando tu sugerencia, pero encuentro que si quiero emitir los registros ordenados de una manera determinada, la salida restringida a las filas no da el resultado correcto.
Si pido todas las filas en un orden y luego verifico si al solicitar las filas 5 a 10 son las correspondientes al listado general, esto no pasa.
Desde ya muchas gracias por tu tiempo.

Marcelo (desde Arg)</description>
		<content:encoded><![CDATA[<p>Estimado Asier, estaba probando tu sugerencia, pero encuentro que si quiero emitir los registros ordenados de una manera determinada, la salida restringida a las filas no da el resultado correcto.<br />
Si pido todas las filas en un orden y luego verifico si al solicitar las filas 5 a 10 son las correspondientes al listado general, esto no pasa.<br />
Desde ya muchas gracias por tu tiempo.</p>
<p>Marcelo (desde Arg)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Dark</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-15271</link>
		<dc:creator>Dark</dc:creator>
		<pubDate>Mon, 26 May 2008 21:27:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-15271</guid>
		<description>Danilo: Lo que necesitas en Oracle PL/SQL es muy similar a lo que pusiste, de hecho solo un cambio de sintaxis debiera bastar:

create procedure xx(param in number, param2 in varchar2)
as
begin
select * from tabla where
campo1=param and
campo2=param2
end xx;
/

Ten ojo que esto solo te sirve en la consola SQL o en tu programa de consultas para Oracle como el Oracle SQL Developer o el TOAD For Oracle 9.0 (Muy buen programa! Funciona con varias versiones de oracle tambien!), eso
si es que solo te interesa verlos a ti. 

Como ha dicho Hubert, si vas a utilizar ese procedure en algun programa, necesitaras un parametro que te devuelva los datos si es que necesitas manipularlos o recibirlos para consulta, en general solo basta con un cursor...</description>
		<content:encoded><![CDATA[<p>Danilo: Lo que necesitas en Oracle PL/SQL es muy similar a lo que pusiste, de hecho solo un cambio de sintaxis debiera bastar:</p>
<p>create procedure xx(param in number, param2 in varchar2)<br />
as<br />
begin<br />
select * from tabla where<br />
campo1=param and<br />
campo2=param2<br />
end xx;<br />
/</p>
<p>Ten ojo que esto solo te sirve en la consola SQL o en tu programa de consultas para Oracle como el Oracle SQL Developer o el TOAD For Oracle 9.0 (Muy buen programa! Funciona con varias versiones de oracle tambien!), eso<br />
si es que solo te interesa verlos a ti. </p>
<p>Como ha dicho Hubert, si vas a utilizar ese procedure en algun programa, necesitaras un parametro que te devuelva los datos si es que necesitas manipularlos o recibirlos para consulta, en general solo basta con un cursor&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: julio</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-12939</link>
		<dc:creator>julio</dc:creator>
		<pubDate>Fri, 22 Feb 2008 15:34:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-12939</guid>
		<description>Este método es práctico pero poco efectivo cuando se trata de consultas que utilizan varias tablas (join).
Paginar de esta forma implica que la consulta deba ser ejecutada una y otra vez en su totalidad, creando el Oracle las tablas transitorias necesarias para resolverla, ordenarla, etc. y luego recien tomar la cantidad de filas solicitadas.  Esto resulta en una degradación de la base con el consiguiente perjuicio para el resto de las personas que utilizan la misma base.

Algo más efectivo sería utilizar una tabla transitoria para luego solicitar las filas del cursor ya resuelto, o bien, si el lenguaje lo permite, serializar el cursor  a XML o JSON y trabajarlo desde el disco.

Esto último tiene la dificultad que estarian utilizando un cursor estático.  Pero en el anterior, si la tabla es muy dinámica, nada asegura que las páginas vistas tengan las mismas filas cuando se las vuelva a solicitar, pues si se borran filas, las filas de páginas posteriores estarán en las anteriores.</description>
		<content:encoded><![CDATA[<p>Este método es práctico pero poco efectivo cuando se trata de consultas que utilizan varias tablas (join).<br />
Paginar de esta forma implica que la consulta deba ser ejecutada una y otra vez en su totalidad, creando el Oracle las tablas transitorias necesarias para resolverla, ordenarla, etc. y luego recien tomar la cantidad de filas solicitadas.  Esto resulta en una degradación de la base con el consiguiente perjuicio para el resto de las personas que utilizan la misma base.</p>
<p>Algo más efectivo sería utilizar una tabla transitoria para luego solicitar las filas del cursor ya resuelto, o bien, si el lenguaje lo permite, serializar el cursor  a XML o JSON y trabajarlo desde el disco.</p>
<p>Esto último tiene la dificultad que estarian utilizando un cursor estático.  Pero en el anterior, si la tabla es muy dinámica, nada asegura que las páginas vistas tengan las mismas filas cuando se las vuelva a solicitar, pues si se borran filas, las filas de páginas posteriores estarán en las anteriores.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Hubert</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-53</link>
		<dc:creator>Hubert</dc:creator>
		<pubDate>Thu, 28 Jun 2007 22:47:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-53</guid>
		<description>Danilo, para que puedas recuperar los datos que te devuelve una consulta en oracle es necesario que incluyas en tu store procedure un parametro in out que deberá ser un ref cursor. Este parametro es quien recuperara los datos que filtraste en el sql. Te dejo este ejemplo que me sirvió de mucho: http://support.microsoft.com/kb/322160/es
No es indispensable pasarle el type al parametro de entrada, pero si es muy indispensable incluir el parametro de salida tipo cursor.
Me parece además que este ejemplo es para Oracle 9i. En 10g tendrás que utilizar OracleDbType.RefCursor.
Suerte amigo!</description>
		<content:encoded><![CDATA[<p>Danilo, para que puedas recuperar los datos que te devuelve una consulta en oracle es necesario que incluyas en tu store procedure un parametro in out que deberá ser un ref cursor. Este parametro es quien recuperara los datos que filtraste en el sql. Te dejo este ejemplo que me sirvió de mucho: <a href="http://support.microsoft.com/kb/322160/es" rel="nofollow">http://support.microsoft.com/kb/322160/es</a><br />
No es indispensable pasarle el type al parametro de entrada, pero si es muy indispensable incluir el parametro de salida tipo cursor.<br />
Me parece además que este ejemplo es para Oracle 9i. En 10g tendrás que utilizar OracleDbType.RefCursor.<br />
Suerte amigo!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: Asier Marqués</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-49</link>
		<dc:creator>Asier Marqués</dc:creator>
		<pubDate>Mon, 25 Jun 2007 20:26:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-49</guid>
		<description>Hola Danilo,

Ya siento no poder responderte ya que actualmente no programo contra bases Oracle y no creo poder darte una respuesta lo suficientemente precisa, que no puedas encontrar tú mismo en google.
Ésta entrada la postee porque en su día me hizo falta y un gran amigo me pasó el truco. Si en un futuro lo vuelvo a necesitar, aquí la tengo yo o cualquiera que lea éste blog.

Un saludo</description>
		<content:encoded><![CDATA[<p>Hola Danilo,</p>
<p>Ya siento no poder responderte ya que actualmente no programo contra bases Oracle y no creo poder darte una respuesta lo suficientemente precisa, que no puedas encontrar tú mismo en google.<br />
Ésta entrada la postee porque en su día me hizo falta y un gran amigo me pasó el truco. Si en un futuro lo vuelvo a necesitar, aquí la tengo yo o cualquiera que lea éste blog.</p>
<p>Un saludo</p>
]]></content:encoded>
	</item>
	<item>
		<title>Por: danilo</title>
		<link>http://asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-43</link>
		<dc:creator>danilo</dc:creator>
		<pubDate>Thu, 21 Jun 2007 16:19:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.asiermarques.com/2007/06/03/oracle-con-consultas-limit-de-mysql/#comment-43</guid>
		<description>gracias por la ayuda, esto me sirvio mucho, una pregunta, como recupero un set de datos desde un procedimiento almacenado en oracle 10g??

o sea 

create procedure xx(param numeric, param2 varchar2)
is
begin
   select * from tabla where
           campo1=param and
           campo2=param2
end xx;
/


en t-sql retorna un set de datos, como lo hago en oracle?</description>
		<content:encoded><![CDATA[<p>gracias por la ayuda, esto me sirvio mucho, una pregunta, como recupero un set de datos desde un procedimiento almacenado en oracle 10g??</p>
<p>o sea </p>
<p>create procedure xx(param numeric, param2 varchar2)<br />
is<br />
begin<br />
   select * from tabla where<br />
           campo1=param and<br />
           campo2=param2<br />
end xx;<br />
/</p>
<p>en t-sql retorna un set de datos, como lo hago en oracle?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
