2011-02-16 13 views
5

estoy corriendo un SQL (Oracle) declaración como esaConsulta Ayuda - secuencia en que la cláusula tiene carácter &

select * from table 
where table_id in ('265&310', '266&320') 

Mientras se ejecuta a través del SAPO, se consideran & como algunos marcador de posición variable y se pregunta por su valor Si fuera por 1-2 titulares, podría haberlo configurado en TOAD pero la cláusula in tiene 200 cadenas.

¿Cómo se es esta consulta?

Quiero exportar el DATASET como instrucción SQL INSERT, por lo que no puedo usar esto en SQL-PLUS.

Respuesta

4

En TOAD, puede deshabilitar la solicitud de variables de sustitución desde el cuadro de diálogo de opciones:

Debe desmarcar: Ver -> Opciones de sapo -> Ejecutar/Compilar -> Solicitar variables de sustitución.

7
SET DEFINE OFF; 

trabajarán para convertir el impulso para la variable fuera ..

o

SET ESCAPE ON; 
SELECT 'blah \& blah' AS DES FROM DUAL; 
+0

¿Hay algún optino para definir definir o definir definir ~ en TOAD? –

+0

Eso funciona cuando se ejecuta como un script, pero TOAD usa su propio analizador para ejecutar sentencias individuales. Afortunadamente, puede desactivar la sustitución desde el menú Opciones, como mostré en mi respuesta. –

1

Puede escapar del carácter y comercial mediante el uso de la concatenación, de esta manera:

select * from table 
where table_id in ('265' || '&' || '310', '266' || '&' || '320') 
+1

esto no debe ser un gran esfuerzo :( –

+0

Otra opción es hacer lo que sugirió Randy y, por ejemplo, configurar el carácter DEFINE en otra cosa o desactivarlo por completo. SET DEFINE ~; – Tommi

Cuestiones relacionadas