Oracle SQL 开发人员 - 声明一个变量一次

Oracle SQL Developer - Declare a variable once

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

我想要的是提示一次声明值。

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

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

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

但是每次都要声明两次

两个引用都使用&&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 automatically DEFINEs any substitution variable preceded by two ampersands, but does not DEFINE those preceded by only one ampersand. When you have defined a variable, SQL*Plus will not prompt for its value in the current session.

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

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

然后对于第一个查询你会被提示但是变量不会被定义;当第二个查询 运行s 时,它将在那一点定义变量,但它还没有值,所以它必须提示一个。然后在第一个查询中使用 &&age 定义它,第一个提示存储值,因此不需要提示第二个。