如何在Oracle中声明和显示变量

时间:2012-01-04 09:19:47

标签: oracle plsql oracle11g

我想在Oracle中声明并显示一个变量。

在T-SQL中我会做这样的事情

DECLARE @A VARCHAR(10) --Declares @A
SELECT @A = '12' --Assigns @A
SELECT @A --Displays @A

我如何在Oracle中执行此操作。

5 个答案:

答案 0 :(得分:38)

如果你在谈论PL / SQL,你应该把它放在一个匿名的块中。

DECLARE
    v_text VARCHAR2(10); -- declare
BEGIN
    v_text := 'Hello';  --assign
    dbms_output.Put_line(v_text); --display
END; 

答案 1 :(得分:8)

如果使用sqlplus,您可以定义一个变量:

define <varname>=<varvalue>

您可以按以下方式显示值:

define <varname>

然后在查询中使用它,例如:

select *
from tab1
where col1 = '&varname';

答案 2 :(得分:3)

如果您使用的是pl / sql,则以下代码应该有效:

设置服务器输出 - 以检索和显示缓冲区

DECLARE

    v_text VARCHAR2(10); -- declare
BEGIN

    v_text := 'Hello';  --assign
    dbms_output.Put_line(v_text); --display
END; 

/

- 这必须用于执行pl / sql脚本

答案 3 :(得分:1)

您最近是否从MySQL切换并且现在渴望在Oracle中使用更简单命令的逻辑等价物?因为对我来说就是这样,我也有同样的问题。此代码将为您提供快速而肮脏的打印,我认为这是您正在寻找的内容:

Variable n number
begin
    :n := 1;
end;
print n

中间部分是绑定变量的PL / SQL位。 print n的输出是列形式,并且不仅仅给出n的值,我害怕。当我在Toad 11中运行它时它会像这样返回

        n
---------
        1

我希望有帮助

答案 4 :(得分:0)

请确保服务器输出已打开,否则将不会显示输出;

sql> 将服务器输出设置为打开;

declare
  n number(10):=1;
begin
  while n<=10
 loop
   dbms_output.put_line(n);
   n:=n+1;
 end loop;
end;
/

出局: 1个 2 3 4 5 6 7 8 9 10

相关问题