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

Problema concatenacion de comillas pl/pgsql

Estas en el tema de Problema concatenacion de comillas pl/pgsql en el foro de PostgreSQL en Foros del Web. Hola gente del foro... Estoy trabajando con pl/pgsql y llegue a un punto donde no se como seguir. Estoy tratando de armar dinamicamente una fecha, ...
  #1 (permalink)  
Antiguo 02/10/2009, 07:22
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Pregunta Problema concatenacion de comillas pl/pgsql

Hola gente del foro...

Estoy trabajando con pl/pgsql y llegue a un punto donde no se como seguir.
Estoy tratando de armar dinamicamente una fecha, para hacer unas inserciones sucesivas e ir modificando dinamicamente una fecha que tiene que insertarse.

Estoy tratando de armar un string dentro de la funcion pero no estoy pudiendo. Le muestro el ejemplo.

Código:
...
WHILE _conteo > 0 LOOP
					
	-- lo que quiero hacer es current_date + interval '1 month';
	_fechaVto := current_date + interval || _conteo || ' month';

	INSERT INTO deudas (deu_coddeuda, deu_codarancel, deu_codconfig, deu_codbombero, deu_fechagen, 
		deu_fecvto, deu_anulada) VALUES (
	nextval('deudas_deu_coddeuda_seq'), in_arancel, _configuration.cgd_codconfig, _bomberos.bom_codbombero, current_date,
		_fechaVto, 'NO');

	_conteo := _conteo - 1;
END LOOP;
El error es que no existe la columna interval... Pero la verdad que no se como tratar el tema de las comillas simples...
Tengo el mismo problema de concatenacion de comillas y variablees en otra parte de la funcion, asi que si alguien sabe como hacerlo, me sería de mucha ayuda.

Espero respuesta, gracias de antemano... Salu2...
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
  #2 (permalink)  
Antiguo 02/10/2009, 15:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: Problema concatenacion de comillas pl/pgsql

Vaya problema nirvana... me pusiste a sudar, pero al fin lo conseguí.

Como vos decias, el problema de reconocer la palabra interval como una columna era jartisimo. ensayé mil cosas pero está parece funcionar al no hacer uso de la palabra interval.

Código sql:
Ver original
  1. CREATE OR REPLACE FUNCTION fechas_dinamicas(nro_meses INTEGER) RETURNS TIMESTAMP AS
  2. $BODY$
  3. DECLARE
  4. dia text;
  5. nueva_fecha TIMESTAMP;
  6. BEGIN
  7. dia = nro_meses::text || ' month';
  8. nueva_fecha = CURRENT_TIMESTAMP + quote_literal(dia)::INTERVAL;
  9. RETURN nueva_fecha;
  10. END;
  11. $BODY$
  12. LANGUAGE 'plpgsql' VOLATILE;

Afortunadamente, la función current_timestamp no requiere de dicha palabra y la sentencia permanece limpia.

Espero no tengas problemas con el campo timestamp. También puees convertir el resultado a date con la función to_date.

Espero te sirva.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 02/10/2009, 15:12
Avatar de [NiRVaNa]  
Fecha de Ingreso: abril-2004
Ubicación: Someplace In The Middle Of Nowhere!
Mensajes: 325
Antigüedad: 20 años
Puntos: 6
Respuesta: Problema concatenacion de comillas pl/pgsql

Cita:
me pusiste a sudar
Lo lamento, no fue mi intencion :P

Muchisimas gracias, ni bien tenga tiempo lo probaré... Tambien estuve intentando algunas cosas, las postearé luego a como otra opcion si es que sale...
__________________
"Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."
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 15:29.