接受多个变量到SQL

时间:2017-09-08 08:45:54

标签: oracle oracle-sqldeveloper

有没有办法让用户在SQL Developer中的ACCEPT中输入值列表? 即:

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 个答案:

答案 0 :(得分:0)

如果您的ID是数字,不是字符串,那么如果脚本是这样的话,用户实际上可以输入以逗号分隔的ID列表:

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

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

如果用户输入1,5,76,则实际运行的查询将为:

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

事实上,同样适用于字符串,但用户必须提供引号,例如得到'A1','B6','F88'

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

这使您的用户有责任正确输入数据 - 但是SQL Developer从未打算成为最终用户界面,正如其名称所暗示的那样,它是开发人员的工具! / p>