La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/PostgreSQL/1296589-Problema-en-concatenacion-de-cadena-en-Postgres.html

Problema en concatenacion de cadena en Postgres

Problema en concatenacion de cadena en Postgres

Publicado por yeran (2 intervenciones) el 16/11/2011 15:51:18
Hola a todos
Estoy intentando realizar un Insert dianmico en una funcion en Postgres, para ello voy construyendo la sentencia Insert a medida que recorro un cursor, el problema lo tengo cuando voy a concatenar una cadena. Por ejemplo, la sentencia para insertar seria esta:

cadena = 'Insert into TableA Values (' ;
cadena = cadena || 'variable' ;
cadena = cadena || ') ;

En el emplo anterior variable es el valor dinamico, supongamos que guarda la cadena "Hola mundo" pero si se queda de la forma en que esta en el ejemplo insertara la cadena "variable". Hay alguna forma que me permita concatenar la variable con el apostrofe ' de forma tal que me quede ' Hola mundo ' en la sentencia Insert?
He visto en los foros que se debe escapar el caracter ' , pero igual me sigue dando error. Espero esplicarme bien. Muchas Gracias por cualquier ayuda.

Problema en concatenacion de cadena en Postgres

Publicado por yeran (2 intervenciones) el 16/11/2011 18:57:10
Hola todos
Vuelvo para responderme yo mismo la pregunta. Para concatenar el caracter ' debemos escapar ese caracter de la siguiente manera. Siguiendo el ejemplo del post anterior:

cadena = 'Insert into TableA Values (' ;
cadena = cadena || 'variable' ;
cadena = cadena || ') ;

Concatenando el caracter ' y escapandolo quedaria de esta manera:

cadena = 'Insert into TableA Values (' ;
cadena = cadena || ' \ ' ' || variable || ' \ ' ' ;
cadena = cadena || ') ;
Con el caracter \ damos escape al caracter ', de esta forma en el ejemlo anterior la sentencia insert quedaria de la siguiente forma suponiendo que variable guarda la cadena "Hola mundo":
Insert into TableA Values ( ' Hola mundo ' );

Espero les pueda servir de algo este ejemplo a otros.

Saludos