run plus developer 11g sql oracle sqlplus

developer - sqlplus unix



¿Cómo ignoro ampersands en un script SQL que se ejecuta desde SQL Plus? (6)

Esto puede funcionar para usted:

set define off

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

''StackOverflow &'' || '' you''

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

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


Lo resolví con el siguiente código:

set escape on

y poner un / al lado y en la izquierda ''value_/&_intert''

Att


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

De manera predeterminada, la función DEFINE está activada, y está configurada en &

Se puede desactivar, como se mencionó anteriormente, pero también se puede evitar estableciendo un valor diferente. Sé muy consciente de a qué signo lo configuraste. 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>



Si a veces usa variables de sustitución, es posible que no desee desactivarla. En estos casos, podría convertir el signo & de su equivalente numérico como en || Chr(38) || || Chr(38) || o añádalo como un solo carácter como en || ''&'' || || ''&'' || .


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

También intenté ...

establecer definir}

Pude insertar varios registros que contenían caracteres y ''y'' pero no puedo usar el carácter ''}'' en el texto. Así que decidí usar "definir definición de desactivado" y todo funciona como debería.