60 votos

Cómo evitar la sustitución de variables en Oracle SQL Developer

Cuando intento ejecutar esta declaración en Oracle SQL Developer 2.1, aparece una ventana de diálogo "Introduce Variable de Sustitución" pidiendo un valor de reemplazo para TOBAGO,

update t set country = 'Trinidad y Tobago' where country = 'trinidad & tobago';

¿Cómo puedo evitar esto sin recurrir a chr(38) o u'trinidad \0026 tobago' que ambos ocultan el propósito de la declaración?

99voto

Nick Craver Puntos 313913

Llame a esto antes de la consulta:

set define off;

Alternativamente, de forma "hacky":

update t set country = 'Trinidad and Tobago' where country = 'trinidad &' || ' tobago';

De Ajuste de SQL*Plus:

SET DEFINE OFF deshabilita el análisis de los comandos para reemplazar variables de sustitución por sus valores.

9voto

diederikh Puntos 17459

En SQL*Plus, poner SET DEFINE ? en la parte superior del script normalmente resolverá esto. Podría funcionar también para Oracle SQL Developer.

1voto

nikhil sugandh Puntos 430

Esto funcionará como solicitaste sin CHAR(38):

update t set country = 'Trinidad and Tobago' where country = 'trinidad & '|| 'tobago';

create table table99(col1 varchar(40));
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
insert into table99 values('Trinidad &' || '  Tobago');
SELECT * FROM table99;

update table99 set col1 = 'Trinidad and Tobago' where col1 = 'Trinidad &'||'  Tobago';

-3voto

ufo2mstar Puntos 1

También tuve un problema similar. Algo se estaba iniciando cada vez que intentaba configurar una conexión a cualquier base de datos.

Lo que funcionó para mí fue eliminar cualquier script de inicio que puedas haber configurado.

es decir, Herramientas>Preferencias...>Base de Datos y eliminar cualquier ruta de archivo que tengas en el cuadro de texto etiquetado "Nombre de archivo para el script de inicio de la conexión".

-3voto

Dinesh Garud Puntos 1

Establecer exploración apagada; El comando anterior también funciona.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X