Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

procedimiento almacenado con sub select

Estas en el tema de procedimiento almacenado con sub select en el foro de Oracle en Foros del Web. create or replace procedure mostrar_nombree(nombre profesor.nom_profesor%type) is codigo departamento.cod_departamento%type; nombre departamento.nomb_departamento%type; begin select cod_departamento,nomb_departamento into codigo,nombre from departamento where cod_departamento in(select cod_departamento from profesor where ...
  #1 (permalink)  
Antiguo 03/06/2011, 07:56
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 8 años, 2 meses
Puntos: 0
procedimiento almacenado con sub select

create or replace procedure mostrar_nombree(nombre profesor.nom_profesor%type)
is
codigo departamento.cod_departamento%type;
nombre departamento.nomb_departamento%type;
begin
select cod_departamento,nomb_departamento into codigo,nombre from departamento where cod_departamento in(select cod_departamento from profesor where nom_profesor = nombre);
dbms_output.put_line('El codigo del profesor del departamento es : ' || codigo);
dbms_output.put_line('El nombre del departamento es : ' || nombre);
end;

mi duda es que no se como trabajar con la clausula into dentro de una consulta sub select, con un sub select me es mas facil hallar lo que quiero pero no puedo, me tirar ademas un error desconocido para mi, ruego ayuda, de antemano gracias.
  #2 (permalink)  
Antiguo 03/06/2011, 08:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 6 meses
Puntos: 360
Respuesta: procedimiento almacenado con sub select

Darsk

Si es un error desconocido para ti, para nosotros también.
Debes postear el error.

La clausula INTo en la consulta que tratas de hacer se le conoce como cursores implicitos. Y solo soportan consultas que retornan un unico registro.
Tu consulta devuelve mas de un registro?

si el retorno son multiples registros, ya debes hacer uso de cursores explicitos que si requieren de una declaración previa.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 03/06/2011, 08:44
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: procedimiento almacenado con sub select

Cita:
Iniciado por huesos52 Ver Mensaje
Darsk

Si es un error desconocido para ti, para nosotros también.
Debes postear el error.

La clausula INTo en la consulta que tratas de hacer se le conoce como cursores implicitos. Y solo soportan consultas que retornan un unico registro.
Tu consulta devuelve mas de un registro?

si el retorno son multiples registros, ya debes hacer uso de cursores explicitos que si requieren de una declaración previa.

saludos
Sabia que podia ser por ahi, por que devuelve mas de un registro, el error es : ERROR en línea 0: PL/SQL: Compilation unit analysis terminated, saludos y gracias por tu respuesta.
  #4 (permalink)  
Antiguo 03/06/2011, 09:12
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 10 años, 6 meses
Puntos: 360
Respuesta: procedimiento almacenado con sub select

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE mostrar_nombree(nombre profesor.nom_profesor%TYPE)
  2. IS
  3.  CURSOR cur1 IS
  4.      SELECT cod_departamento,nomb_departamento FROM departamento WHERE cod_departamento IN(SELECT cod_departamento FROM profesor WHERE nom_profesor = nombre);
  5. BEGIN
  6. FOR departamento IN cur1
  7.   LOOP
  8.      DBMS_OUTPUT.PUT_LINE('Codigo: ' || departamento.cod_departamento);
  9.      DBMS_OUTPUT.PUT_LINE('Nombre: ' || departamento.nom_departamento);
  10.   END LOOP;
  11. END;

sería algo similar
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #5 (permalink)  
Antiguo 03/06/2011, 10:48
Avatar de Darsk  
Fecha de Ingreso: mayo-2011
Mensajes: 39
Antigüedad: 8 años, 2 meses
Puntos: 0
Respuesta: procedimiento almacenado con sub select

Te lo agradesco un monton, de verdad te pasaste, me da gusto este foro y su gente, saludos.

Etiquetas: procedimiento, select, almacenar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:05.