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

pl/sql oracle

Estas en el tema de pl/sql oracle en el foro de Oracle en Foros del Web. Hola tengo un procedure. con una consulta. y en ella hay un like que no hay caso que me funcione!!!! mira asi lo uso: create ...
  #1 (permalink)  
Antiguo 24/03/2006, 13:36
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
pl/sql oracle

Hola
tengo un procedure. con una consulta. y en ella hay un like que no hay caso que me funcione!!!!
mira asi lo uso:

create or replace procedure mi_proc (v_ciclo char)
begin
insert into campos
select * from tabla where campo like '%v_ciclo%';
end;

esto lo he probado millones de veces en sql. y funciona muy bien, pero aqui, como tengo que recibir un aparametro. no es lo mismo.
ojala alguien sepa.
__________________
Dios es mas grande que tu problema :-)
  #2 (permalink)  
Antiguo 24/03/2006, 17:51
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
prueba asi

select * from tabla where campo like '%' || v_ciclo || '%';
  #3 (permalink)  
Antiguo 27/03/2006, 11:17
 
Fecha de Ingreso: octubre-2004
Ubicación: Santiago de Chile
Mensajes: 504
Antigüedad: 19 años, 6 meses
Puntos: 0
siguie sin funcionar.

CREATE OR REPLACE procedure paso_uno_prueba (v_ciclo_fact char)
is
begin
insert
into cobranza
( RUT , NOMBRE , CUENTA , FOLIO
,EMISION , VENCIMIENTO, MONTO , TIPO_DOC
,USU_CLIE, NAT_JUR , FONO , CELULAR
,CORREO , FORMA_PAGO , CICLO_FACT, FECHA_PROC
,DIA_MENSAJERIA
)
select * from cobranza_217 where ciclo_fact like '%v_ciclo_fact%';

end;
/


no se como usar el like!!!

__________________
Dios es mas grande que tu problema :-)
  #4 (permalink)  
Antiguo 28/03/2006, 11:14
 
Fecha de Ingreso: noviembre-2005
Mensajes: 658
Antigüedad: 18 años, 5 meses
Puntos: 3
Tu like definitivamente esta bien.... el problema es el parametro que recibe... o sea, la llamada es la que estas haciendo mal y con toda seguridad te llega el parametro como null; por eso no encuentra nada... te aconsejo que justo antes de hacer el insert verifiques con un if el valor que trae el parametro... apuesto que esta nulo... eso es... la sintaxis y todo lo demas esta correcto...
  #5 (permalink)  
Antiguo 02/03/2008, 18:05
 
Fecha de Ingreso: febrero-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: pl/sql oracle

Cita:
Iniciado por maurimono Ver Mensaje
siguie sin funcionar.

CREATE OR REPLACE procedure paso_uno_prueba (v_ciclo_fact char)
is
begin
insert
into cobranza
( RUT , NOMBRE , CUENTA , FOLIO
,EMISION , VENCIMIENTO, MONTO , TIPO_DOC
,USU_CLIE, NAT_JUR , FONO , CELULAR
,CORREO , FORMA_PAGO , CICLO_FACT, FECHA_PROC
,DIA_MENSAJERIA
)
select * from cobranza_217 where ciclo_fact like '%v_ciclo_fact%';

end;
/


no se como usar el like!!!

Debes concatenar el parametro con la sentencia como te decian por alla arriba es asi como te pongo aki , a mi tambien me pasaba lo mismo y resolvi asi.

select * from cobranza_217 where ciclo_fact like '%'||v_ciclo_fact||'%';
  #6 (permalink)  
Antiguo 02/03/2008, 19:13
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: pl/sql oracle

lidier, buen post... bienvenido al foro... te recomiendo un ligero cambio para dar por solucionado el tema de que si viene o no el parametro en null.

Código:
WHERE CICLO_FACT LIKE DECODE(P_CICLO_FACT, NULL, CICLO_FACT, '%'||P_CICLO_FACT||'%')
De esta manera sabras si tu parametro esta nulo o no, de venir en nulo, el resultado seran todos los ciclos de facturas, entonces te daras cuenta que algo no anda bien.

Cambie el nombre del parametro V_CICLO_FACT por P_CICLO_FACT que es una nomenclatura mucho mas representativa de un parametro.

Muchos exitos, Saludos. Mario.
__________________
Y venció David al filisteo con honda y piedra; e hirió al filisteo y lo mató, sin tener David espada en su mano.
  #7 (permalink)  
Antiguo 07/09/2008, 04:34
 
Fecha de Ingreso: septiembre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: pl/sql oracle

Ayuda con un procedure.
Que tal soy nuevo en esto de la programacion y estoy trabajando para obtener los numeros primos en pl/ sql y tengo este codigo:

create or replace procedure pri ( n in number)
is
primo number :=1;
begin
for i in 3..n loop
primo := 1;
for j in 2..i-1 loop
if mod (i,j) = 0 then
primo := 0;
end if;
end loop;
if (primo = 1)then
imprimir(i);
end if;
end loop;
end;
/

solo que me genera los primos que estan en el rango del parametro n y no los n primeros....
alguna idea para modificarlo???

Saludos
  #8 (permalink)  
Antiguo 06/01/2010, 18:02
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: pl/sql oracle

Hola, soy nueva en este foror, bueno lo que pasa es que necesito un procedimiento que me dibuje una piramide de asteriscos pero invertida algo asi:
*****
****
***
**
*
espero y alguien me pueda ayudar.
  #9 (permalink)  
Antiguo 07/01/2010, 03:55
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: pl/sql oracle

¿ por que repites el post ?

Te había contestado en el otro hilo, peeeeero editando que es gerundio.
  #10 (permalink)  
Antiguo 08/03/2010, 16:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 1
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: pl/sql oracle

Saludos gente.

Tengo un problemilla algo peliagudo.

Resulta que el jueves por la tarde, tengo una entrevista de trabajo para una suplencia de un mes, y me han soplado que me haran una prueba contrarelog.

en el modulo, di sql y plsql pero fue hace tiempo y me gustaria saber si alguien de los aqui presentes podria hacerme el favor del jueves por la tarde poderse conectar a internet y realizar esa prueba a la vez que yo, para comparar resultados y evitar que me pueda quedar atascado.

Esto no es un metodo de engaño, simplemente asegurarme de realizar bien la prueba, ya que conozco la materia pero estoi algo frio.

Ruego una respuesta. mi correo es [email protected]
  #11 (permalink)  
Antiguo 01/02/2011, 12:22
 
Fecha de Ingreso: febrero-2011
Ubicación: Cádiz
Mensajes: 1
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Respuesta: pl/sql oracle

Hola!

Soy nueva en el foro.

¿Me puede ayudar alguien con un procedimiento que tengo que hacer? Tengo que hacer un procedimiento que se llame ALTA_CLIENTES, este procedimiento como bien indica su nombre tiene que insertar nuevos datos de clientes sin que se repitan.
Os dejo la tabla y espero que puedan ayudarme....

CREATE TABLE clientes
(nif VARCHAR2(10) NOT NULL,
nombre VARCHAR2(15) NOT NULL,
domicilio VARCHAR2(15),
CONSTRAINT pk_clientes
PRIMARY KEY (nif)
);

Gracias de antemano!
  #12 (permalink)  
Antiguo 23/03/2011, 02:22
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: pl/sql oracle

Hola, soy nuevo en el foro y tengo una pregunta.

Estoy diseñando un procedimiento PLSQL que trata una colencción extensa de registros mediante consultas espaciales (determinar distancias).
El procedimiento funciona pero llega un momento que la memoria que usa Oracle crece tanto que tumba la base de datos.

El procedimiento es el siguiente

CREATE OR REPLACE PROCEDURE checkproximity AS
CURSOR ThePoints IS SELECT geometry, row_kw FROM pointsLayer;
CURSOR TheDistance(ppos MDSYS.SDO_GEOMETRY)IS SELECT sdo_nn_distance(1) from lineLayer where sdo_nn(lineLayer.geometry, ppos , 'sdo_num_res=1 unit=Km', 1) = 'TRUE';

ppos mdsys.sdo_geometry;
therow int;
dist number;
BEGIN
dist :=0;
Open ThePoints;
Loop
Fetch ThePoints INTO ppos, therow;
exit when ThePoints%NOTFOUND;
Open TheDistance(ppos);
Loop
Fetch TheDistance INTO dist;
exit when TheDistance%NOTFOUND;
End LOOP;
Close TheDistance;
if dist < 1 then
UPDATE pointLayer set NEAR = 'S' where row_kw=therow;
COMMIT;
End if;
COMMIT;
END LOOP;
Close ThePoints;


EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
NULL;
END checkproximity;
/

¿Alguien me puede dar una pista de porqué pasa esto?

Muchas gracias de antemano.
Un saludo,
  #13 (permalink)  
Antiguo 26/03/2011, 18:49
Avatar de kikolice  
Fecha de Ingreso: marzo-2004
Mensajes: 1.510
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: pl/sql oracle

me he desenganchado de este foro, hoy entro y no entiendo por que hablen y hablen preguntas en un mismo post, yo me quede en un post por pregunta? de que me perdi?
__________________
Blogzote.com :-) Mi blog
  #14 (permalink)  
Antiguo 27/03/2011, 11:14
 
Fecha de Ingreso: junio-2007
Mensajes: 891
Antigüedad: 16 años, 10 meses
Puntos: 43
Respuesta: pl/sql oracle

Cita:
Iniciado por kikolice Ver Mensaje
me he desenganchado de este foro, hoy entro y no entiendo por que hablen y hablen preguntas en un mismo post, yo me quede en un post por pregunta? de que me perdi?
Solamente mira las preguntas que hacen en los ultimos post ......
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 23:50.