Toad for Oracle 12.12:文字和环境变量有什么区别?
Toad for Oracle 12.12: What is the difference between Literal and Environment Variable?
我在 SQL 代码中多次使用变量 &WEIGHT
。当我执行时,出现以下 window 要求我设置我的变量的值。
我有两个主要问题:
1) 字面量和环境变量有什么区别?
2) &WEIGHT
变量在 SQL 代码中多次声明。这意味着所有这些语句都将采用相同的值,对吗?
文字是您手动输入的内容 - 例如,10
作为 Scott 表中的 DEPTNO。
环境变量顾名思义 - 允许您在 TOAD 或系统变量(例如 SYSDATE、PATH、TNSADMIN 等)之间进行选择。
关于你的第二个问题,是的 - 无论你有多少语句(SQL 或 PL/SQL),windows,不同的连接......如果你使用相同的所有的 WEIGHT 变量,它们将获得相同的值。
替换变量(此处为&WEIGHT
)是一个占位符,就像程序单元中的变量一样,出于性能原因很有用。由于在这种情况下执行 select 语句的解析执行一次,而对于每个文字解析操作都会重复。因此,每个语句的 None 对每次调用都具有相同的值。
此外,使用文字存在 sql 注入漏洞。
P.S。对于字符串类型的值,使用单引号 '&STR'
替换变量。
Littlefoot 对文字变量与环境变量的解释非常准确。关于您的第二个问题,系统将提示您为使用单个&符号声明的每个 WEIGHT 提供一个值。如果您想输入一次 WEIGHT 并在每次使用时保留相同的值,请使用双符号。
示例 1,两次提示输入 WEIGHT。
select &WEIGHT, &WEIGHT from dual;
例2,提示WEIGHT一次
select &&WEIGHT, &&WEIGHT from dual;
当您将许多语句作为脚本一起执行时,single/double 符号也适用,Toad 中的 F5 快捷方式。
示例 1,两次提示 WEIGHT,每个语句一次。
select &WEIGHT from dual;
select &WEIGHT from dual;
示例 2,提示输入 WEIGHT 一次,一旦第一次遇到它,该值将重复用于使用 &&WEIGHT 的每个后续语句。
select &&WEIGHT from dual;
select &&WEIGHT from dual;
请参阅 SQL*Plus user's guide 中的 "Avoiding Unnecessary Prompts for Values" 部分。
我在 SQL 代码中多次使用变量 &WEIGHT
。当我执行时,出现以下 window 要求我设置我的变量的值。
我有两个主要问题:
1) 字面量和环境变量有什么区别?
2) &WEIGHT
变量在 SQL 代码中多次声明。这意味着所有这些语句都将采用相同的值,对吗?
文字是您手动输入的内容 - 例如,10
作为 Scott 表中的 DEPTNO。
环境变量顾名思义 - 允许您在 TOAD 或系统变量(例如 SYSDATE、PATH、TNSADMIN 等)之间进行选择。
关于你的第二个问题,是的 - 无论你有多少语句(SQL 或 PL/SQL),windows,不同的连接......如果你使用相同的所有的 WEIGHT 变量,它们将获得相同的值。
替换变量(此处为&WEIGHT
)是一个占位符,就像程序单元中的变量一样,出于性能原因很有用。由于在这种情况下执行 select 语句的解析执行一次,而对于每个文字解析操作都会重复。因此,每个语句的 None 对每次调用都具有相同的值。
此外,使用文字存在 sql 注入漏洞。
P.S。对于字符串类型的值,使用单引号 '&STR'
替换变量。
Littlefoot 对文字变量与环境变量的解释非常准确。关于您的第二个问题,系统将提示您为使用单个&符号声明的每个 WEIGHT 提供一个值。如果您想输入一次 WEIGHT 并在每次使用时保留相同的值,请使用双符号。
示例 1,两次提示输入 WEIGHT。
select &WEIGHT, &WEIGHT from dual;
例2,提示WEIGHT一次
select &&WEIGHT, &&WEIGHT from dual;
当您将许多语句作为脚本一起执行时,single/double 符号也适用,Toad 中的 F5 快捷方式。
示例 1,两次提示 WEIGHT,每个语句一次。
select &WEIGHT from dual;
select &WEIGHT from dual;
示例 2,提示输入 WEIGHT 一次,一旦第一次遇到它,该值将重复用于使用 &&WEIGHT 的每个后续语句。
select &&WEIGHT from dual;
select &&WEIGHT from dual;
请参阅 SQL*Plus user's guide 中的 "Avoiding Unnecessary Prompts for Values" 部分。