Pregunta

Tengo un script SQL que crea un paquete con un comentario que contiene un signo comercial (&).Cuando ejecuto el script desde SQL Plus, se me solicita que ingrese un valor sustituto para la cadena que comienza con &.¿Cómo desactivo esta función para que SQL Plus ignore el signo comercial?

¿Fue útil?

Solución

Esto puede funcionar para usted:

set define off

De lo contrario, el signo comercial debe estar al final de una cadena,

'StackOverflow &' || ' you'

EDITAR:Estaba feliz de hacer clic al guardar...Esto fue referenciado desde un Blog.

Otros consejos

Si a veces utiliza variables de sustitución, es posible que no desee desactivar la definición.En estos casos, puede convertir el signo comercial de su equivalente numérico como en || Chr(38) || o agréguelo como un solo carácter como en || '&' ||.

Lo resolví con el siguiente código:

set escape on

y pon un \ al lado de & a la izquierda 'value_\&_intert'

atención

Puede establecer el carácter especial, que se busca al ejecutar un script, en otro valor mediante el uso del SET DEFINE <1_CHARACTER>

De forma predeterminada, la función DEFINIR está activada y configurada en &

Se puede desactivar, como ya se mencionó, pero también se puede evitar configurándolo en un valor diferente.Ten muy en cuenta en qué signo lo configuras.En el siguiente ejemplo, elegí el carácter #, pero esa elección es solo un ejemplo.

SQL> select '&var_ampersand #var_hash' from dual;
Enter value for var_ampersand: a value

'AVALUE#VAR_HASH'
-----------------
a value #var_hash

SQL> set define #
SQL> r
  1* select '&var_ampersand #var_hash' from dual
Enter value for var_hash: another value

'&VAR_AMPERSANDANOTHERVALUE'
----------------------------
&var_ampersand another value

SQL>

set define off <- Esta es la mejor solución que encontré

También lo intenté...

establecer definir}

Pude insertar varios registros que contienen Ampersand Caracteres '&', pero no puedo usar el carácter '}' en el texto, así que decidí usar "Set Defining Off" y todo funciona como debería.

De acuerdo a estas buenas preguntas frecuentes Hay un par de soluciones.

También es posible que puedas escapar del signo comercial con el carácter de barra invertida. \ si puedes modificar el comentario.

Tenía una declaración CASE con CUANDO columna = 'algún texto y más texto' ENTONCES....

Lo reemplacé con When column = 'somext' || Chr (38) || 'más texto' que ...

También puede usar cuando una columna como 'a algún text _ más texto' luego ...

(_ es el comodín para un solo carácter)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top