如何将PL / SQL存储过程与变量一起使用

时间:2016-08-08 15:44:49

标签: sql-server oracle stored-procedures plsql

之前我使用的是SQL Server,现在我必须在PL / SQL中完成一些任务,在我看来,Oracle完全没有逻辑,我无法在任何地方找到适当的用户友好文档。< / p>

如何在SQL Server中编写与此类似的存储过程:

create procedure test(
@x   int
)
as
begin
select * from table where id = @x
end

如果可能只是解释pl / sql脚本背后的逻辑。谢谢。

2 个答案:

答案 0 :(得分:1)

CREATE OR REPLACE PROCEDURE test (x NUMBER) AS
var_table_row TABLE%ROWTYPE;
BEGIN
select * 
into var_table_row
from table where id = x;
END;

您需要声明一个行变量来存储您选择的内容。这个程序目前没有任何意义。你想要返回光标吗?

编辑:我使用这样的功能来做您要求的事情。

CREATE OR REPLACE FUNCTION test (x NUMBER) RETURN TABLE%ROWTYPE AS
var_table_row TABLE%ROWTYPE;
BEGIN
select * 
into var_table_row
from table where id = x;
RETURN var_table_row;
END;

像这样调用这个函数。

Declare
var_row  TABLE%ROWTYPE;
BEGIN
var_row := test(2);  --passes two, returns a row.  Use row like var_row.id
END;

答案 1 :(得分:0)

你的PL \ SQL过程看起来像......

create procedure test(x IN NUMBER)
IS
begin
   select * from table where id = x;
end;