我正在准备 Oracle 认证。当我浏览基本级别的查询时,我遇到了替换变量。我的疑问是,
- 如果我们使用 Substitution 变量创建查询,前端用户如何理解必填字段?
- 我们不会对这些输入造成任何混淆吗?
- 我们可以如何更好地优化这种类型的查询?
请提供您的宝贵建议。
先感谢您
对于前两点,听起来您需要 SQL*Plusaccept
和prompt
命令;它们在接收替代变量值下进一步解释。这些一起将允许您解释要求用户输入的值是什么,我认为这也解决了“混乱”部分。
accept
&
还会自动定义变量,因此即使您使用单个&符号(而不是&&
),也不会再次提示用户。
prompt The next value you will be asked for should be numeric
accept badVarName prompt 'Enter some value: '
select ... from my_table where my_column = &badVarName;
我不确定您指的是哪种优化,但是您可以在查询中使用绑定变量,可能会从替换变量中填充它:
variable bindVar number;
exec :bindVar := &badVarName;
select ... from my_table where my_column = :bindVar;