2011-02-16 1 views
5

Je courais une déclaration comme celleRecherche Aide - Chaîne dans laquelle l'article a et caractère

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

SQL (Oracle) Lors de l'exécution par TOAD, envisager & comme une espace réservé variable et demande pour sa valeur. Si c'était pour 1-2 placeholders alors je pourrais l'avoir placé dans TOAD mais la clause in a comme 200 de cordes.

Comment poser une question?

Je veux exporter le DATASET en tant qu'instruction SQL INSERT, donc je ne peux pas l'utiliser dans SQL-PLUS.

Répondre

4

Dans TOAD, vous pouvez désactiver l'invite pour les variables de substitution dans la boîte de dialogue des options:

Vous devez désélectionner: Affichage -> Options de crapaud -> Exécuter/Compiler -> Demander les variables de substitution.

7
SET DEFINE OFF; 

Est-ce que travailler pour transformer l'impulsion pour la variable off ..

ou

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

Y at-il un optino pour définir définir ou définir définir ~ dans TOAD? –

+0

Cela fonctionne lors de l'exécution en tant que script, mais TOAD utilise son propre analyseur pour exécuter des déclarations individuelles. Heureusement, vous pouvez désactiver la substitution à partir du menu Options, comme je l'ai montré dans ma réponse. –

1

Vous pouvez échapper au esperluette en utilisant concaténation, comme ceci:

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

cela demande beaucoup d'effort :( –

+0

Une autre option est de faire ce que Randy a suggéré et, par exemple, de mettre le caractère DEFINE à quelque chose d'autre ou tout simplement. – Tommi

Questions connexes