我想在Oracle中声明并显示一个变量。
在T-SQL中我会做这样的事情
DECLARE @A VARCHAR(10) --Declares @A
SELECT @A = '12' --Assigns @A
SELECT @A --Displays @A
我如何在Oracle中执行此操作。
答案 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