如何将带有参数的SQL Server存储过程转换为带参数的Oracle存储过程?

时间:2014-12-08 04:50:54

标签: sql-server oracle stored-procedures

这通常会在SQL Server Express中创建一个存储过程,但我不确定如何在Oracle 11g中重写它,因为它不带“@”符号。有人能为我转换这个吗?

create procedure search_expenses
   @startdate as datetime,
   @enddate as datetime
as
begin
   select 
       amount, description, trxdate, bankaccountid 
   from 
       expense 
   where 
       trxdate between @startdate and @enddate;
end
go

1 个答案:

答案 0 :(得分:0)

程序在Oracle中的工作方式不同。您无法直接选择将为您输出结果集。您需要选择REFCURSOR,然后您的应用程序必须处理该光标。

其次,Oracle中的参数未使用@指定。

以下是Oracle过程的示例

  CREATE OR REPLACE PROCEDURE get_some_table(ref_cursor out sys_refcursor) is
  begin
    open ref_cursor for
      select * from my_schema.some_table;
  end get_some_table;