Oracle - Ayuda urgente

 
Vista:
Imágen de perfil de Otoniel

Ayuda urgente

Publicado por Otoniel (12 intervenciones) el 17/10/2014 22:27:29
amigos tengo otra duda. se me olvidadaba gracias x las ayudas anteriores sirvieron de mucho.
Bueno aki les va. estoy haciendo este cursor:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
declare
t number(20);
cursor C_FORTEMP
is select TABLENAME,COLUMNREFNAME from FORTEMP ;
c_TABLENAME varchar2(500);
c_COLUMNREFNAME varchar2(500);
begin
open C_FORTEMP;
loop
Fetch C_FORTEMP into c_TABLENAME,c_COLUMNREFNAME;
select COUNT(*) into t from (select TABLENAME from FORTEMP WHERE FORTEMP.TABLENAME = c_TABLENAME);
INSERT INTO F VALUES (t);
EXIT WHEN C_FORTEMP%NOTFOUND;
end loop;
end;
para saber la cantidad de filas que tienen unas tablas(PAIS,CATEGORIA,DEPARTAMENTO) cuyo identificador(TABLENAME) esta en la tabla que le estoy pasando el cursor(FORTEMP) pero con este codigo en vez de devolver la cantidad me devuelve 1. para probar lo q me estaba devolviendo lo inserte todo en la tabla temporal(F). Creo q el error esta en esta linea:
1
select COUNT(*) into t from (select TABLENAME from FORTEMP WHERE FORTEMP.TABLENAME = c_TABLENAME)
porq si la cambio x esta q es mas o menos lo mismo devuelve el valor real de la tabla(PAIS) q es uno de los q necesito y el q le especifico:
1
select COUNT(*) into t from  PAIS;

Gracias x la ayuda. Saludos y buen fin de semana
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

Ayuda urgente

Publicado por luis (235 intervenciones) el 17/10/2014 23:51:08
Sabes para que sirve la funcion COUNT() ????
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
Imágen de perfil de Otoniel

Ayuda urgente

Publicado por Otoniel (12 intervenciones) el 20/10/2014 16:37:09
la funcion segun tengo entendido sirve para contar todas las filas de una tabla. Pq preguntas
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

Ayuda urgente

Publicado por luis (235 intervenciones) el 20/10/2014 20:27:52
Entonces, no entiendo tu duda, donde está el problema?
Puedes explicarlo mas al detalle.

Saludos

luis
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
Imágen de perfil de Otoniel

Ayuda urgente

Publicado por Otoniel (12 intervenciones) el 20/10/2014 20:41:39
no devuelve lo que debe devolver s ejemplo deberia devolver

26
4
16
y devuelve

1
1
1
1
ya he identificado el problema el cual es que la sentencia plsql:
1
select COUNT(*) into t from (select TABLENAME from FORTEMP WHERE FORTEMP.TABLENAME = c_TABLENAME)
no coge lo que hay en c_TABLENAME que es el campo de la tabla FORTEMP el cual contiene el nombre de la tabla a la cual se le quiere contar las filas x ejeplo PAIS
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

Ayuda urgente

Publicado por luis (235 intervenciones) el 20/10/2014 20:49:07
Bueno,

select COUNT(*) into t from (select TABLENAME from FORTEMP WHERE FORTEMP.TABLENAME = c_TABLENAME)


Retorna la cantidad de filas resultado del subquery.

No es que "no devuelve lo que deveria devolver" si no que no tienes claro el uso de la funcion, por eso te preguntaba cual es el uso de la funcion COUNT(). No existe ningún problema.

Saludos

Luis.
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

Ayuda urgente

Publicado por jorge (21 intervenciones) el 30/10/2014 21:34:41
Hola, primero quisiera que expliques porqué usas un cursor?, pues si deseas obtener cantidades de filas , basta con un select simple. Por lo general se usa un cursor cuando en cada iteración el programa debe comportarse diferente. En tu caso usas un cursor para hacer un select, creo que basta con que uses un join.
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