2014-05-08 112 views

回答

2
  1. 的Oracle变量不与@前缀像在SQL Server中。
  2. Oracle查询必须FROM条款;有一个系统提供的虚拟表,名为DUAL,用于此
  3. 在Oracle中,SQL代码和过程代码之间的界限比SQL Server要困难得多。

如果你想要做的是打印出一个变量的值,你需要做这样的事情:

DECLARE 
    var_name NVARCHAR2(5) := 'Vinay'; 
BEGIN 
    -- Enable printing 
    DBMS_OUTPUT.ENABLE(); 
    -- Print the value 
    DBMS_OUTPUT.PUT_LINE(var_name); 
END; 
/

注意:如果你正在做这在SQL * Plus中,必须发出SET SERVEROUTPUT ON才能看到结果。

+0

+1为完整答案评论 – SriniV

+0

我明白了。但是这会在消息窗口中显示变量的值。我想看到网格形式的结果,就像我们在使用以下结果时得到的结果: 从双重选择'Vinay'; – vstandsforvinay

+0

在这种情况下,您可能需要包级变量;看到这个问题:http://stackoverflow.com/questions/301369/pl-sql-how-do-i-declare-session-variables –

1

我希望这应该工作

DECLARE 
    var_name varchar2(5) := 'Vinay' ; 

BEGIN 
    DBMS_OUTPUT.PUT_LINE(var_name); 
END; 
+0

没有。我需要显示数据而不使用任何表格。类似于 从双重选择'Vinay'; – vstandsforvinay

+0

我建议去肯恩的答案上面哪个更好。 – SriniV