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

ayuda con oracle express edition y procedimiento

Estas en el tema de ayuda con oracle express edition y procedimiento en el foro de Oracle en Foros del Web. estoy aprendiendo a menjar los procedimiento en este motor ,y este me genera este scritp Código: create or replace procedure "PROCE" (salida OUT VARCHAR2) is ...
  #1 (permalink)  
Antiguo 01/06/2010, 13:53
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
ayuda con oracle express edition y procedimiento

estoy aprendiendo a menjar los procedimiento en este motor ,y este me genera este scritp

Código:
create or replace procedure "PROCE"
(salida OUT VARCHAR2)
is
begin
SELECT * INTO salida FROM clientes;
end;
/

pero me dice que tiene este error

5 22 PL/SQL: ORA-00947: no hay suficientes valores
5 1 PL/SQL: SQL Statement ignored


que puede ser?
  #2 (permalink)  
Antiguo 01/06/2010, 18:32
Avatar de killerangel  
Fecha de Ingreso: septiembre-2007
Ubicación: Un punto en el espacio
Mensajes: 592
Antigüedad: 16 años, 6 meses
Puntos: 10
Respuesta: ayuda con oracle express edition y procedimiento

creo q la tabla clientes tiene varias columnas y la variable salida solo almacena un dato
__________________
Sueñen... y trabajen por hacer esos sueños realidad... de eso se construye el futuro!!
Me siento entre la ASP-ada y la PHP-red
  #3 (permalink)  
Antiguo 01/06/2010, 18:42
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Respuesta: ayuda con oracle express edition y procedimiento

umm si quiciera hacerlo que devuelva toda una fila como seria?


saludos
  #4 (permalink)  
Antiguo 02/06/2010, 08:48
Avatar de 8vio  
Fecha de Ingreso: marzo-2008
Ubicación: Detras del monitor
Mensajes: 168
Antigüedad: 16 años
Puntos: 6
Respuesta: ayuda con oracle express edition y procedimiento

Hola,

El campo de salida debe ser un tipo rowtype de la tabla, si quiere toda una fila

Código:
(salida OUT clientes%rowtype)
Ojoooooooooo con ese select * tambien podria devolverte varias filas, en este caso deberia ser un (Aca hablamos de un solo campo ok):

Código:
TYPE tstring IS TABLE OF VARCHAR2(30)
             INDEX BY BINARY_INTEGER;
      
TYPE tnumbers IS TABLE OF NUMBER
              INDEX BY BINARY_INTEGER;
por ende

Código:
(salida OUT tstring )
Un numero o varchar y asi con muchos campos mas, tambien lo mas sano en tu caso si quieres todaaas la filas mas todas las columnas es un tipo cursor:

Código:
 TYPE mycursor IS REF CURSOR;
por ende
Código:
(salida OUT mycursor)
En este ultimo en vez de un select simple debes realizar un cursor

Código:
OPEN salida FOR
      SELECT * FROM clientes;
Estos types van en el declare del paquete o el procedimiento.

Saludos y suerte
  #5 (permalink)  
Antiguo 02/06/2010, 10:09
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años
Puntos: 15
Respuesta: ayuda con oracle express edition y procedimiento

Muchas gracias exactamente estaba buscado tambien los cusores

saludos

Etiquetas: express, procedimiento
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 10:49.