首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TOAD脚本中的变量

TOAD脚本中的变量
EN

Stack Overflow用户
提问于 2009-12-22 23:59:15
回答 5查看 32.2K关注 0票数 8

我有一个正在TOAD中执行的SQL脚本。目前,我只用一条接一条的语句来展示它,因此:

代码语言:javascript
复制
select such-and-such from somewhere;

delete other-thing from somewhere-else;

诸若此类。一些where子句最终是重复的,因为我有复杂的内部查询来获得要操作的特定ID。我想在一个变量中捕获脚本开头的ID,然后在后续的where子句中使用该变量。所以就像这样:

代码语言:javascript
复制
variable MY_ID = select the-ID from somewhere;

select such-and-such from somewhere where ID = @MY_ID;

显然,这是我编造的语法,但这正是我要找的。但我不确定这在TOAD脚本中是否可行。我知道我可以将整个代码转换为PL/SQL块,但我正努力避免由于各种原因而不得不这样做。

有什么方法可以在不转换为PL/SQL块的情况下使用TOAD完成此操作?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-12-23 03:04:30

我想这会达到你想要的效果。您可以声明绑定变量,在其中插入一个值,然后在将来的语句中使用它。

代码语言:javascript
复制
variable l_var varchar2(1);

begin
  select dummy
    into :l_var
    from dual;
end;

select *
  from dual
 where dummy = :l_var;
票数 12
EN

Stack Overflow用户

发布于 2017-01-21 00:08:58

我使用SQL*+替代变量。它们是由TOAD支持的。您可以通过按F5来执行此代码。

代码语言:javascript
复制
COLUMN VAR NEW_VALUE VAR_VALUE

SELECT 'SOMETHING' VAR FROM DUAL;  --this sets 'VAR_VALUE' = 'SOMETHING'

SELECT '&VAR_VALUE' FROM DUAL;  --this uses the value set by the previous stmt.
票数 1
EN

Stack Overflow用户

发布于 2009-12-23 01:00:37

我不再经常使用TOAD,但应该有一些机制来设置绑定参数的值,即select such-and-such from somewhere where ID = :myid;,这样每次出现绑定参数时,TOAD都会为该参数提供相同的值。

或者,您可以创建一个会话上下文值或PL/SQL包变量(注意:与重写整个代码以使用PL/SQL不是一回事)。请参阅this question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1947280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档