我对Oracle非常陌生,并被要求编写一个过程来查询表中的某些数据。我用2个参数构建它,一个游标和一个数字。基本上我有:是否需要在程序中查询游标?
PROCEDURE PROC_NAME (
cursor_name IN OUT NOCOPY MY_DEFINED_CURSOR_TYPE,
a_number IN NUMBER);
AS
BEGIN
OPEN CURSOR_NAME FOR
SELECT
column
FROM
table
WHERE
table.dat_value > (SYSDATE - a_number);
END PROC_NAME;
它的工作原理就像一个魅力,我可以从光标中获取列。我的问题是请求者不想传入光标,他们只是想传入数字。我从来没有创建过一个不使用游标来返回查询值的过程,我见过的例子只有这样才能做到。这可能吗?
这听起来像你只是被要求到'cursor_name'参数从'IN OUT'改为'OUT'。作为一种风格,我会在'IN'参数之后加入'OUT'参数,但这只是个人偏好。 –
有多种方式可以返回数据而不是游标。请求者能指定他们想要的东西吗?嵌套表,关联数组,单个标量值...? –
请求者是否被用于SQL Server?在SQL Server中,游标的返回是隐含的,不需要通过参数。 –