2010-10-15 7 views
2

J'ai une sélection:analyseur SQL (changement méthode d'analyse syntaxique)

select * from table1 where col1=10; 

et un autre choisi:

select * from table1 where col1=11; 

analyseur Sql les parse sqls que différentes .. Je veux faire Parse SQL PARSER.DJL la déclaration une fois et juste changer le paramètre dans la clause where .. Puis-je le faire? Avez-vous une idée? s'il vous plaît partagez-le avec moi .. merci beaucoup.

PS: Je un:

select * from v$sql 
where parsing_user_id=55 (my user id) 

et de voir que la nouvelle ligne est insérée quand je lance première requête et une autre ligne est insérée quand je lance deuxième query.If je cours première ou seconde requête une plus temps maintenant, une nouvelle ligne est insérée (cela signifie que sql parser ne l'analyse pas une fois de plus)

Répondre

7

Vous devez utiliser des variables de liaison sous une forme quelconque. Si vous faites cela dans SQL * Plus, par exemple, vous pouvez faire:

var myval number; 

exec :myval := 10; 
select * from table1 where col1 = :myval; 

exec :myval := 11; 
select * from table1 where col1 = :myval; 

Si vous appelez d'ailleurs il existe des mécanismes légèrement différents afin que vous pourriez avoir besoin d'être un peu plus précis.

+1

Merci très bonne réponse, mais j'utilise PL/SQL Developer..how peut-il être là? – kupa

+0

Hmm, n'utilise pas ça mais je pensais que c'était pareil; L'as tu essayé? –

+1

yaa J'ai essayé cela fonctionne :) insérant juste une rangée pour ces requêtes ... mais il devrait être fait à partir de PL/SQL développeur – kupa

Questions connexes