我目前能够执行sql语句,返回信息,并使用reader来解析信息。我想用SPROC来做这件事,但是我遇到了问题。在定义sproc时,我该如何返回表的结构?返回每一列?
示例:
CREATE PROCEDURE sp_test1 (id int,
test1 varchar2(15),
test3 varchar3(15))
BEGIN
SELECT id, test1, test3 FROM test_table
END;
答案 0 :(得分:3)
如果您想使用存储过程,通常会返回一个光标,即
CREATE OR REPLACE PROCEDURE sp_test1( p_cursor OUT SYS_REFCURSOR )
AS
BEGIN
OPEN p_cursor
FOR SELECT id, test1, test3
FROM test_table;
END;
假设PowerShell知道如何处理返回的游标句柄,那应该可行。另一方面,如果您所做的只是封装查询,则可能需要在Oracle中使用视图而不是存储过程。然后,您的应用程序可以针对视图发出简单的选择。