接受多个变量到 SQL
ACCEPT Multiple Variables into SQL
有什么方法可以让用户在 SQL Developer 的 ACCEPT 中输入值列表?
即:
ACCEPT USER_ENTRY CHAR PROMPT 'Please enter values'
select *
from my_table
where my_id in('&USER_ENTRY')
当然这适用于单个值,但我找不到使其适用于多个值的解决方案。例如,如果我想 select ID“1”和“2”的详细信息。
我知道将信息加载到临时 table 中并对其进行查询,但由于项目的性质,我宁愿尽可能避免这种情况(用户将使用 'front end' 脚本使用 @"MY_FILE_LOCATION\MY_SCRIPT.sql";
等将无法看到它们是 运行 的实际脚本,但需要输入多个值)。
如果您的 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');
这让您的用户有责任正确输入数据 - 但是 SQLDeveloper 从未打算成为最终用户界面,它是 开发人员顾名思义!
有什么方法可以让用户在 SQL Developer 的 ACCEPT 中输入值列表? 即:
ACCEPT USER_ENTRY CHAR PROMPT 'Please enter values'
select *
from my_table
where my_id in('&USER_ENTRY')
当然这适用于单个值,但我找不到使其适用于多个值的解决方案。例如,如果我想 select ID“1”和“2”的详细信息。
我知道将信息加载到临时 table 中并对其进行查询,但由于项目的性质,我宁愿尽可能避免这种情况(用户将使用 'front end' 脚本使用 @"MY_FILE_LOCATION\MY_SCRIPT.sql";
等将无法看到它们是 运行 的实际脚本,但需要输入多个值)。
如果您的 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');
这让您的用户有责任正确输入数据 - 但是 SQLDeveloper 从未打算成为最终用户界面,它是 开发人员顾名思义!