2017-09-08 4 views
-1

Existe-t-il un moyen pour qu'un utilisateur entre une liste de valeurs dans un ACCEPT dans SQL Developer? i.e. .:ACCEPTER plusieurs variables dans SQL

ACCEPT USER_ENTRY CHAR PROMPT 'Please enter values' 

select * 
from my_table 
where my_id in('&USER_ENTRY') 

Bien sûr, cela fonctionne avec une seule valeur, mais je ne peux pas trouver une solution pour le faire fonctionner avec de multiples valeurs. Par exemple si je voulais sélectionner les détails pour l'ID '1' et '2'. Je suis conscient de charger l'information dans une table temporaire et d'interroger contre cela, mais je préfère éviter cela si possible en raison de la nature du projet (les utilisateurs appellent ce script en utilisant un script 'front end' en utilisant @"MY_FILE_LOCATION\MY_SCRIPT.sql"; et ainsi ne sera pas capable de voir le script réel qu'ils exécutent mais devront entrer plusieurs valeurs).

Répondre

0

Si vos identifiants sont numériques, pas chaînes, l'utilisateur peut effectivement entrer dans une liste séparée par des virgules des ID si le script est comme ceci:

ACCEPT USER_ENTRY CHAR PROMPT 'Please enter values (separate by commas)' 

select * 
from my_table 
where my_id in(&USER_ENTRY); 

Si l'utilisateur entre 1,5,76 alors la requête en fait exécuter sera:

select * 
from my_table 
where my_id in(1,5,76); 

le même travaillerait pour les chaînes en fait, mais l'utilisateur devra fournir les citations par exemple 'A1','B6','F88' pour obtenir:

select * 
from my_table 
where my_id in('A1','B6','F88'); 

Il appartient donc à vos utilisateurs d'entrer les données correctement - mais SQL Developer n'a jamais été destiné à être une interface utilisateur final, il est un outil pour développeurs comme son nom implique!