【问题标题】:Oracle SQL Developer - Declare a variable onceOracle SQL Developer - 声明一个变量一次
【发布时间】:2021-12-08 11:03:42
【问题描述】:

我正在使用 Oracle SQL Developer 并将我的查询作为脚本在工作表中运行。

我想要发生的事情是被提示一次声明值。

SELECT * FROM Person WHERE age IN (&age);
SELECT * FROM Job WHERE min_age IN (&age);

但是,当我运行查询时,它会提示我为变量输入两次值。

我试图在顶部定义它。 我尝试在第二个查询中使用 &&age。 我尝试改用 :age。

但是每次我都要声明两次。

【问题讨论】:

标签: oracle-sqldeveloper


【解决方案1】:

两个引用都使用&&age

SELECT * FROM Person WHERE age IN (&&age);
SELECT * FROM Job WHERE min_age IN (&&age);

如果您想重新运行脚本并且每次运行时仍然提示(一次),请先取消定义变量:

undefine age
SELECT * FROM Person WHERE age IN (&&age);
SELECT * FROM Job WHERE min_age IN (&&age);

From the documentation:

... SQL*Plus 自动定义任何以两个 & 符号开头的替换变量,但不定义那些仅以一个 & 符号开头的变量。定义变量后,SQL*Plus 不会在当前会话中提示输入它的值。

如果您只修改问题中描述的第二个参考:

SELECT * FROM Person WHERE age IN (&age);
SELECT * FROM Job WHERE min_age IN (&&age);

那么对于第一个查询,系统会提示您,但不会定义变量;当第二个查询运行时,它将在该点定义变量,但它还没有值,所以它必须提示输入一个。在第一个查询中使用&&age 也可以定义它,第一个提示存储值,因此不需要提示第二个。

【讨论】:

  • 就是这个!我真的很沮丧,因为我快到了。由于我的观点,我无法投票,但感谢您抽出宝贵时间回复!非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-14
  • 2019-08-28
  • 1970-01-01
相关资源
最近更新 更多