2017-09-08 29 views
-1

是否有任何方法让用户在SQL Developer中将值列表输入到ACCEPT中? 即:将多个变量接受到SQL中

ACCEPT USER_ENTRY CHAR PROMPT 'Please enter values' 

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

当然,这可与一个单一的值,但我不能找到一个解决方案,使其与多个值工作。例如,如果我想选择ID'1'和'2'的细节。

我知道将信息加载到临时表中并进行查询,但如果可能,由于项目的性质,我宁愿避免这种情况(用户将使用“前端”脚本使用此脚本@"MY_FILE_LOCATION\MY_SCRIPT.sql";,所以无法看到它们正在运行的实际脚本,但需要输入多个值)。如果用户输入1,5,76那么查询

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

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

回答

0

如果你的ID是数字,字符串,那么用户实际上可以输入一个逗号分隔的编号列表,如果脚本是这样的实际运行将是:

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

这同样适用于字符串实际上,但用户将不得不提供引号eg 'A1','B6','F88'获得:

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

这会将责任推给用户正确输入数据 - 但是SQL开发人员从未打算成为一个最终用户界面,它是开发商作为其名称的刀具暗示!