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

Oracle pl/sql toad

Estas en el tema de Oracle pl/sql toad en el foro de Bases de Datos General en Foros del Web. necesito hacer algo tan simple com esto: CREATE OR REPLACE PACKAGE general AS PROCEDURE encontrar(rut_1 IN varchar2); END general; CREATE OR REPLACE PACKAGE BODY general ...
  #1 (permalink)  
Antiguo 16/03/2006, 14:16
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
De acuerdo Oracle pl/sql toad

necesito hacer algo tan simple com esto:

CREATE OR REPLACE PACKAGE general AS
PROCEDURE encontrar(rut_1 IN varchar2);
END general;

CREATE OR REPLACE PACKAGE BODY general IS
PROCEDURE encontrar(rut_1 IN varchar2) IS
BEGIN
select * from cobranza where rut like '%rut_1%';
END;
END general;

pero me dice que tengo un error en la consulta
PLS-00428: se espera una cláusula INTO en esta sentencia SELECT

Help me!!
Atte
Mauricio

Última edición por maurimono; 16/03/2006 a las 16:31
  #2 (permalink)  
Antiguo 16/03/2006, 19:01
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Mira esto encontre que dice claramente que debes de usar la clausula INTO en el select... esta en ingles pero se entiende bien

Oracle plsql syntax stipulate that you cannot use plain "SELECT " clause directly, you have to use "SELECT INTO " clause.

so what you need to do is declare the variables to hold the columns from select clause first.


try this:

PROCEDURE SP_LIST_01 (i_Descripcion IN VARCHAR2)

IS

declare

l_cod_op varchar2(200);
l_des_tipo_op varchar2(200);
l_fec_adq varchar2(200);
BEGIN
SELECT OP.Cod_OP ,
TiOP.Des_Tipo_OP ,
OP.Fec_Adq into l_cod_op, l_des_tipo_op, l_fec_adq
FROM TBL_OP OP, TRF_TIPO_OP TiOP
WHERE OP.cod_tipo_op = TiOP.cod_tipo_op
ORDER BY OP.Des_OP ;
END SP_LIST_01;

Comment from ATAHAC
Date: 05/04/2004 09:25AM PDT
Comment


You must use SELECT INTO statement

You can find more information about it on :
http://download-west.oracle.com/docs...htm#sthref1857
  #3 (permalink)  
Antiguo 17/03/2006, 08:43
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
Información procedure

Asi es. corregi esa parte del procedimiento:

CREATE OR REPLACE PROCEDURE mientras (v_cuenta cobranza.CUENTA%TYPE)
IS
v_rut cobranza.rut%TYPE;
BEGIN
select rut into v_rut from cobranza where cuenta = 'v_cuenta';
END mientras;

cuando hago:
select rut from cobranza where cuenta = '123456';
me envia el dato, pero al ejecutar el procedimikento me envia un error

ora-01403: no se han encontrado datos
ora-06512: en "MGONZALEZ.MIENTRAS" LINEA 5
ora-06512: EN LINEA 7

Y sigo invesigando.
Atte
Mauricio
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 18:21.