<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Códice | Entradas sobre «sql»</title><description>Feed RSS de publicaciones etiquetadas con sql</description><link>https://javguerra.github.io/</link><item><title>Oracle SQL Literal Converter</title><link>https://javguerra.github.io/blog/osqlc</link><guid isPermaLink="true">https://javguerra.github.io/blog/osqlc</guid><description>Sanitizando SQL para Oracle via web local o por línea de comandos</description><pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://javguerra.github.io/_astro/osqlc.e18iygQz_1cPFJ7.webp&quot; alt=&quot;Captura de pantalla de Oracle SQL Literal Converter&quot; style=&quot;max-width: 100%; height: auto;&quot; /&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Etiquetas:&lt;/strong&gt; &lt;em&gt;#herramienta&lt;/em&gt;, &lt;em&gt;#sql&lt;/em&gt;, &lt;em&gt;#oracle&lt;/em&gt;, &lt;em&gt;#html&lt;/em&gt;, &lt;em&gt;#css&lt;/em&gt;, &lt;em&gt;#javascript&lt;/em&gt;, &lt;em&gt;#node.js&lt;/em&gt;, &lt;em&gt;#responsive&lt;/em&gt;, &lt;em&gt;#web&lt;/em&gt;, &lt;em&gt;#bbdd&lt;/em&gt;, &lt;em&gt;#código&lt;/em&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;Cuando trabajas con bases de datos Oracle a través de herramientas de administración como SQL*Plus, SQL Developer, Toad o PL/SQL Developer, es casi inevitable chocarse antes o después con el mismo obstáculo frustrante: la gestión de literales de texto con caracteres especiales.&lt;/p&gt;
&lt;p&gt;Quien haya ejecutado alguna vez un INSERT o UPDATE con un texto como “Ibáñez &amp;amp; Asociados” sabrá exactamente de qué hablo. Por un lado, el símbolo del ampersand (&amp;amp;) hace que SQL*Plus se detenga pidiendo interactiva y molestamente el valor para una “variable de sustitución” &amp;amp;Asociados. Por otro lado, los caracteres con acentos, la ñ, los signos de apertura (¿, ¡) o los símbolos de moneda suelen corromperse si el cliente SQL y la base de datos no comparten exactamente la misma configuración NLS o codificación de caracteres.&lt;/p&gt;
&lt;p&gt;Para solucionar este dolor de cabeza, he desarrollado OSQLC (Oracle SQL Literal Converter).&lt;/p&gt;
&lt;p&gt;Puedes descargar el script o acceder a la página web desde el: &lt;a href=&quot;https://github.com/JavGuerra/oracle-sql-literal-converter&quot;&gt;&lt;button&gt;Repositorio del conversor&lt;/button&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;También puedes acceder directamente al conversor web desde: &lt;a href=&quot;https://javguerra.github.io/oracle-sql-literal-converter/&quot;&gt;Oracle SQL Literal Converter&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;cómo-funciona-la-sanitización&quot;&gt;¿Cómo funciona la sanitización?&lt;/h2&gt;
&lt;p&gt;La solución técnica más limpia en Oracle consiste en aislar los caracteres problemáticos y reemplazarlos por su función nativa chr(N) equivalente (basada en el juego de caracteres ISO-8859-1 / Latin-1), concatenándolos con el resto de la cadena.&lt;/p&gt;
&lt;p&gt;OSQLC analiza el script SQL y realiza esta transformación de forma transparente. Por ejemplo, convierte esta sentencia propensa a errores:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;INSERT INTO&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; clientes (nombre, direccion) &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;VALUES&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;Ibáñez &amp;amp; Asociados&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;C/ Ramón y Cajal, nº 45&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;En este otro código, seguro y portátil para cualquier entorno Oracle:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;sql&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;INSERT INTO&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; clientes (nombre, direccion) &lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#F97583&quot;&gt;VALUES&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;Ib&apos;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chr(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;225&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chr(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;241&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;ez &apos;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chr(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;38&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos; Asociados&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt;&apos;C/ Ram&apos;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chr(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;243&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos;n y Cajal, n&apos;&lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt; ||&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt; chr(&lt;/span&gt;&lt;span style=&quot;color:#79B8FF&quot;&gt;186&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; &apos; 45&apos;&lt;/span&gt;&lt;span style=&quot;color:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Además, el motor de procesado de OSQLC incluye características avanzadas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Respeto estricto de comentarios: Preserva intactos los comentarios de línea (–) y de bloque (/* … */) sin alterar su contenido.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Soporte para Cita Alternativa (q’…’): Procesa correctamente la sintaxis Alternative Quoting Mechanism de Oracle.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Control de saltos de línea: Convierte los retornos de carro (\n y \r) en chr(10) y chr(13), evitando que se rompa la sintaxis en literales multilínea.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;dos-versiones-para-cada-tipo-de-flujo-de-trabajo&quot;&gt;Dos versiones para cada tipo de flujo de trabajo&lt;/h2&gt;
&lt;p&gt;Para hacer la herramienta lo más versátil posible, la he estructurado en dos modalidades complementarias:&lt;/p&gt;
&lt;h3 id=&quot;1-versión-cli-nodejs&quot;&gt;1. Versión CLI (Node.js)&lt;/h3&gt;
&lt;p&gt;Pensada para desarrolladores, automatizaciones o integración en canalizaciones CI/CD y scripts de despliegue. Te permite procesar archivos .sql directamente desde la terminal con un comando sencillo:&lt;/p&gt;
&lt;pre class=&quot;astro-code github-dark&quot; style=&quot;background-color:#24292e;color:#e1e4e8; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;bash&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#B392F0&quot;&gt;node&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; osqlc.js&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; mi_script.sql&lt;/span&gt;&lt;span style=&quot;color:#9ECBFF&quot;&gt; script_sanitizado.sql&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id=&quot;2-versión-web-htmljs-standalone&quot;&gt;2. Versión Web (HTML/JS Standalone)&lt;/h3&gt;
&lt;p&gt;Diseñada para un uso diario, rápido y visual desde cualquier navegador. Se trata de una interfaz web con estilo oscuro que funciona de forma 100% local (client-side).&lt;/p&gt;
&lt;p&gt;No requiere servidores, no instala nada y garantiza la privacidad total, ya que el código SQL jamás sale de tu navegador.&lt;/p&gt;
&lt;p&gt;Entre sus características destacan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Drag &amp;amp; Drop: Arrastra directamente tus archivos .sql a la zona de carga.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Validación inteligente: Verifica que la extensión sea .sql o .txt y analiza el contenido en busca de palabras clave de SQL (como INSERT, SELECT, UPDATE), lanzando avisos si detecta un archivo incorrecto por error.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Edición y descarga directa: Puedes pegar código a mano o descargar el archivo convertido con un solo clic.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;ventajas&quot;&gt;Ventajas&lt;/h2&gt;
&lt;p&gt;Con OSQLC, lo que antes requería reemplazar caracteres a mano de forma tediosa o lidiar con parámetros de sesión como SET DEFINE OFF, ahora se resuelve en un instante. Ya sea automatizando despliegues en la consola o arrastrando un archivo en la web, la sanitización queda cubierta de punta a punta.&lt;/p&gt;
&lt;p&gt;¿Te has encontrado con este problema en Oracle alguna vez? ¡Espero que la herramienta te sea tan útil en tu día a día como a mí!&lt;/p&gt;
&lt;h2 id=&quot;enlaces&quot;&gt;Enlaces&lt;/h2&gt;
&lt;p&gt;Conoce todas las características de OSQLC:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://github.com/JavGuerra/oracle-sql-literal-converter&quot;&gt;Repositorio del conversor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://javguerra.github.io/oracle-sql-literal-converter/&quot;&gt;Web de Oracle SQL Literal Converter&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded><enclosure url="https://javguerra.github.io/_astro/osqlc.e18iygQz_1cPFJ7.webp"/><category>herramienta</category><category>sql</category><category>oracle</category><category>html</category><category>css</category><category>javascript</category><category>node.js</category><category>responsive</category><category>web</category><category>bbdd</category><category>código</category><author>JavGuerra</author></item></channel></rss>