如何在Oracle PL-SQL的select语句中使用变量

时间:2016-11-15 13:23:25

标签: oracle

我有一个简单的查询,我可以在toad中运行。

select * from my_table 
where my_id = 11111;

为什么我不能在toad中运行相同的查询,这次声明一个变量并在where子句中使用它?

在sql server中我会:

declare @testID int
set @testID = 11111
select * from my_table 
    where my_id = @testID;

如何在Oracle 11g中完成相同的工作?

2 个答案:

答案 0 :(得分:5)

在Toad(或SQL Developer)中,您可以这样做:

select * from my_table 
where my_id = :testID;

运行时,系统将提示您输入testId绑定变量的值。

答案 1 :(得分:2)

PLSQL与SQL SERVER不同。它有自己的语法。了解如何执行此操作,如下所示:

DECLARE
   var    NUMBER := 1;
   var2   my_table%ROWTYPE;
BEGIN
   SELECT *
     INTO var2
     FROM my_table
    WHERE my_id = var;

  --To display result you need to add dbsm_output.put_line function.

  dbms_output.put_line(var2.<columnname>);

Exception
When others then
 Null;       
END;

注意:假设查询将只返回一行。