Saltar al contenido

PL/SQL, cómo escapar comillas simples en un string?

Este team especializado despúes de muchos días de trabajo y de recopilar de datos, dieron con la solución, esperamos que te sea útil en tu trabajo.

Solución:

Puedes usar citas literales:

stmt := q'[insert into MY_TBL (Col) values('ER0002')]';

La documentación para los literales se puede encontrar aquí.

Alternativamente, puede usar dos comillas para denotar una sola comilla:

stmt := 'insert into MY_TBL (Col) values(''ER0002'')';

El mecanismo de cotización literal con la sintaxis Q es más flexible y legible, en mi opinión.

Aquí hay una publicación de blog que debería ayudar a escapar de las marcas en las cadenas.

Aquí está el método más simple de dicha publicación:

La forma más simple y más utilizada es usar una comilla simple con dos comillas simples > en ambos lados.

SELECCIONE ‘comilla simple de prueba”’ de dual;

La salida de la declaración anterior sería:

prueba de comillas simples’

Simplemente indique que necesita un carácter de comilla simple adicional para imprimir un carácter de comilla simple>. Es decir, si coloca dos caracteres de comillas simples, Oracle imprimirá uno. El primero actúa como un personaje de escape.

Esta es la forma más sencilla de imprimir comillas simples en Oracle. Pero se volverá >complejo cuando tenga que imprimir un conjunto de comillas en lugar de solo una. En esta situación, el siguiente método funciona bien. Pero requiere un poco más de trabajo de mecanografía.

Además de la respuesta anterior de DCookie, también puede usar chr(39) para una comilla simple.

Encuentro esto particularmente útil cuando tengo que crear una serie de declaraciones de inserción/actualización basadas en una gran cantidad de datos existentes.

He aquí un ejemplo muy rápido:

Digamos que tenemos una tabla muy simple, Clientes, que tiene 2 columnas, Nombre y Apellido. Necesitamos mover los datos a Customers2, por lo que necesitamos generar un montón de declaraciones INSERT.

Select 'INSERT INTO Customers2 (FirstName, LastName) ' ||
       'VALUES (' || chr(39) || FirstName || chr(39) ',' || 
       chr(39) || LastName || chr(39) || ');' From Customers;

Descubrí que esto es muy útil al mover datos de un entorno a otro o al reconstruir un entorno rápidamente.

Si piensas que te ha resultado de ayuda este post, nos gustaría que lo compartas con más desarrolladores y nos ayudes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *