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);
... 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
定义它,第一个提示存储值,因此不需要提示第二个。
我正在使用 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);
... 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
定义它,第一个提示存储值,因此不需要提示第二个。