替换变量& &安培;&安培;

时间:2013-10-23 12:31:56

标签: oracle oracle11g oracle10g

我正在准备Oracle认证。当我经历基本级别查询时,我遇到了替换变量。我怀疑的是,

  1. 如果我们使用Substitution变量创建查询,前端用户如何才能理解所需的字段?
  2. 我们是不是对这些输入产生了任何困惑?
  3. 我们如何更好地优化此类查询?
  4. 请提供宝贵的建议。

    提前谢谢

1 个答案:

答案 0 :(得分:1)

对于前两点,听起来你需要SQL * Plus acceptprompt命令;它们在Receiving a Substitution Variable Value下进一步解释。这些将允许您解释用户被要求输入的价值,我认为这也解决了“混乱”部分。

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;