SQL - Como puedo armar un cursor a partir del otro

 
Vista:

Como puedo armar un cursor a partir del otro

Publicado por Any (3 intervenciones) el 28/12/2004 01:19:48
Tengo un SP que me devuelve un cursor y quisiera a partir de ese cursor armar otro, agregando unos campos en vacio. Alguien, se le ocurre como hacer esto, sin tener que crear una tabla temporal para guardar los datos?
Muchas gracias!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como puedo armar un cursor a partir del otro

Publicado por Isaías Islas (5072 intervenciones) el 28/12/2004 17:01:24
El uso de CURSORES, no es recomendable en SQL Server, ya que degradan la eficiencia de respuesta del servidor, ¿Que desea hacer exacamente?, casi TODO lo que se hace con cursores, se puede hacer con T-SQL.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo armar un cursor a partir del otro

Publicado por Any (3 intervenciones) el 28/12/2004 18:07:18
Primero estoy usando PLSQL. Tengo un Stored Procedure que me devuelve un cursor que tiene por ejemplo 4 campos, yo lo que necesito es armar otro que me devuelva 6 campos los otros 2 en blancos . Si o si tengo que usar un cursor porque es eso lo que espera una función que tengo de otro lado, aunque no sea eficiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo armar un cursor a partir del otro

Publicado por Isaías Islas (5072 intervenciones) el 29/12/2004 16:17:17
Suerte con los cursores
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como puedo armar un cursor a partir del otro

Publicado por Liliana (426 intervenciones) el 29/12/2004 16:59:57
Hola Isaías,
¿No estaremos hablando de cosas diferentes?
No conozco PLSQL, que es lo que está usando Any, pero dice que su SP "devuelve" un cursor, cosa que en MS SQL Server no puede suceder (un sp puede devolver varias cosas, pero no un cursor).
Y además una función está esperando 6 columnas de algo que tampoco podría ser un cursor porque no entraría en su alcance hasta donde yo sé.
Me pregunto si la palabra "cursor" de PLSQL podría equivaler a variable tipo Tabla, por ejemplo.
¿Podrías aclararlo Any?
Saludos, Liliana.

Primero estoy usando PLSQL. Tengo un Stored Procedure que me devuelve un cursor que tiene por ejemplo 4 campos, yo lo que necesito es armar otro que me devuelva 6 campos los otros 2 en blancos . Si o si tengo que usar un cursor porque es eso lo que espera una función que tengo de otro lado, aunque no sea eficiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo armar un cursor a partir del otro

Publicado por Isaías Islas (5072 intervenciones) el 30/12/2004 00:09:16
Tenes razon !!!, es posible que se refiera a un RECORDSET.....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo armar un cursor a partir del otro

Publicado por Jaime (17 intervenciones) el 30/12/2004 01:04:06
Hola Any, Isaias y Liliana,

Bueno primero que todo estoy de acuerdo con la respuesta de liliana y por supuesto la suposición de Isaías, por lo que responderia a Any : si lo que se necesita es dos columnas adicionales ademas de las que devuelve la consulta actual, yo agregaria a la lista de campos del select dos valores nulos con sus respectivos nombres. Ej.

Si fuese un cursor en SQL Server:
Declare MiCursor Cursor For
SELECT [CAMPOS DE LA CONSULTA,] NULL AS CAMPO1, NULL AS CAMPO2
FROM <RESTO DE LA CONSULTA>

Espero sea lo que esperabas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como puedo armar un cursor a partir del otro

Publicado por Liliana (426 intervenciones) el 30/12/2004 11:29:08
Hola Jaime,
en cambio yo buscaría cualquier manera de eliminar esos cursores. Tu respuesta es sintácticamente correcta, pero HAGAMOS TODO EL ESFUERZO POSIBLE para pensar que T-SQL no está pensado para trabajar fila a fila, que es la finalidad de los cursores. Te preguntarás ¿Entonces para qué están? Solo porque sabían que nos iba a costar ... bueno, no puedo usar en el foro la expresión de mi país, digamos, un ojo de la cara, cambiar nuestra mentalidad, sobre todo cuando ya estamos entraditos en años. Y además, hay algunas cosas que cuando trabajás con tablas de sistemas o comandos DBCC, no queda otra posibilidad.
Mi opinión:
Si Any devuelve datos de un SP, y necesita enviar columnas sin datos, puede hacer algo (demasiado simplificado) como esto:

CREATE PROC miproc (@variable int)
AS
SELECT dato1, dato2, dato3 = null, dato4 = null
FROM mitabla
WHERE dato1 = @variable
GO

Espero que estemos colaborando con Any que se ha llamado a silencio...
Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como puedo armar un cursor a partir del otro

Publicado por Any (3 intervenciones) el 30/12/2004 23:38:16
Gracias por las respuestas. El problema le resolvi usando otra tabla, cosa que al principio no quería. Pero igualmente les aclaro las dudas que me pusieron. Tanto en Oracle como SQL Server la idea del cursor es la misma. El problema radicaba que un cursor espera un select y no otro cursor. El problema que tenia era que el SP me devolvia un los datos de 4 columnas en un select y en realidad yo nocesitaba que me devulelva 6 columnas por eso la idea de armar otro cursor con los datos del primero.
Saludos y felices fiestas!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:Como puedo armar un cursor a partir del otro

Publicado por Liliana (426 intervenciones) el 03/01/2005 15:56:51
Hola Any,
Gracias por los saludos, y aprovecho para retribuírtelos.
Si te sirve la solución que encontraste, bueno, me alegro.
Si en algún momento querés poner a consideración tu código, aunque este es el mes de más trabajo para mí en el año, me ofrezco a ayudarte a encontrar otra posibilidad.
Saludos, Liliana.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar