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

error : an INTO clause is expected in this select statement

Estas en el tema de error : an INTO clause is expected in this select statement en el foro de Oracle en Foros del Web. Hola a todos , estoy comenzando en Oracle ..... y weno tengo que crear un procedimiento y me sale el error : an INTO clause ...
  #1 (permalink)  
Antiguo 14/09/2014, 13:03
 
Fecha de Ingreso: septiembre-2014
Mensajes: 1
Antigüedad: 9 años, 7 meses
Puntos: 0
error : an INTO clause is expected in this select statement

Hola a todos , estoy comenzando en Oracle ..... y weno tengo que crear un procedimiento y me sale el error : an INTO clause is expected in this select statement


esta es mi tabla :

create table persona (
p_dni varchar2(8),
p_apell_paterno varchar2(40),
p_apell_materno varchar2(40),
p_nombres varchar2(40),
p_fec_nac date
);

Y lo que tengo que hacer es crear un procedimiento en el que reciba como parámetro el N° DNI , valide que el DNI exista, que emita como resultado los datos , ejemplo

Recibe como parámetro el DNI:12345678

N° DNI 12345678
Nombres: Daniel
Apellido Paterno: Pinedo
Apellido Materno: Miraflores

y si no existe emitir no existe DNI

Este es lo que avance :
create or replace procedure buscarDNI(fecha varchar2)
as
begin
select *from persona where p_fec_nac=fecha ;
end;

y me sale el error en mencion

Cualquier ayuda o consejo se agradece , ......pronto espero tambien ayudarlos
Saludos
  #2 (permalink)  
Antiguo 15/09/2014, 06:40
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: error : an INTO clause is expected in this select statement

Un pequeño consejo.

Cuando tengas un problema de este tipo, primero busca info p.e. en el google sobre el error (Supongo que te habrá salido algo similar a este código de error : PLS-00428 ) y luego, si lo que has encontrado no te lo aclara, entonces es el momento de acudir a los foros, pero primero, como te he dicho, hay que tratar de solucionar las cosas por uno mismo, así se aprende mas que acudiendo a los foros en cuanto se ve la palabra error, creeme.

Y respecto a tu error, en un programa pl ( procedure, function, package, trigger ), salvo en los cursores, un select tiene que llevar de un INTO para meter el resultado de esa select.

SELECT CAMPO / CAMPOS / *
INTO VARIABLE / VARIABLES / VARIABLE TIPO REGISTRO
FROM TABLA / TABLAS

Y en tu caso para dártelo todo mascado :

Código SQL:
Ver original
  1. CREATE OR REPLACE PROCEDURE buscarDNI( fecha IN varchar2)
  2. AS  
  3.  
  4. var_persona persona%rowtype; -- Siendo var_persona una variable de tipo registro de la tabla persona
  5.  
  6. BEGIN
  7.  
  8. SELECT *
  9.  INTO var_persona
  10.    FROM persona
  11.     WHERE p_fec_nac=fecha ;    
  12.  
  13. --
  14. -- Aquí ya tienes en VAR_PERSONA todos los datos que hay en la tabla persona cuya fecha de nacimiento sea igual a la que has mandado como aprametro
  15. --
  16. -- OJO, Si encuentra mas de uno, te va a saltar un error y si no encuentra ninguno, también. Debes de gestionar las excepciones, busca info sobre
  17. -- NO_DATA_FOUND y TOO_MANY_ROWS  
  18.  
  19. END;
  20. /

Etiquetas: expected, fecha, procedimiento, select, statement
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 17:21.