Devs,Oracle SQL Developer PL/SQL возвращает массив
Я искал везде, где могу, но я не мог найти решение этой простой проблемы.
Ситуация:
мне нужно написать процедуру, где он принимает имя столбца в качестве входных данных и возвращает все различные значения, присутствующие в этой колонке в качестве выхода. И тогда я должен использовать эту процедуру в некотором коде C#.
В MS-сервере это очень просто, так как он непосредственно даст набор результатов, в отличие от PL/SQL.
Script Я мог бы написать (который не дает мне результат мне нужно):
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
Может кто-то помочь мне с этим кодом, пожалуйста.
Логика выглядит правильно, но ваш оператор выбора странно. Если вы запустите «select different (« col_name ») из my_table« что вы получаете? Вам нужно выполнить немедленное выполнение. – OldProgrammer
Мне просто нужно получить все уникальные значения из этого конкретного столбца. –