开发人员,
我到处搜索,但我找不到这个简单问题的解决方案。
情况:
我需要编写一个过程,它将列名作为输入,并返回该列中存在的所有不同值作为输出。然后我必须在一些 c# 代码中使用这个过程。
在 MS 服务器中,这很容易,因为它会直接给出结果集,这与 PL/SQL 不同。
我可以写的脚本(这没有给我我需要的结果):
CREATE OR REPLACE
PROCEDURE GetCol(PARAM IN STRING, recordset OUT sys_refcursor)
AS
BEGIN
OPEN recordset FOR
SELECT DISTINCT(PARAM)
FROM my_table;
END
;
当我尝试使用此代码检查记录集中的数据时:
DECLARE
l_cursor SYS_REFCURSOR;
l_sname VARCHAR2(50);
BEGIN
GetCol('col_name',l_cursor);
LOOP
FETCH l_cursor INTO l_sname;
EXIT WHEN l_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(l_sname);
END LOOP;
CLOSE
有人可以帮我处理这段代码吗?