PL SQL хранимая процедура возвращает результат динамического c запроса - PullRequest
0 голосов
/ 27 января 2020

У меня есть следующий код, но это не возвращает результирующие строки. Когда я не использую Dynami c sql, я смог вернуть результат с помощью курсора, но он ничего не возвращает.

CREATE OR REPLACE PROCEDURE my_db.sp_test
(
    my_clause in VARCHAR2
)
AS
     query1 VARCHAR2(5000) DEFAULT 'SELECT my_table.* FROM my_table WHERE 1=1 ';
BEGIN

if like_clause is not null then
    query1 := query1 || my_clause;
else
    query1 := query1 || my_clause;
end if;

EXECUTE IMMEDIATE query1;
END;
/

, например: my_clause параметр 'AND my_table.ID IN (10693192,10687172,10630960)'

EDIT: следующий код возвращает результирующие строки. И я могу прочитать их из моего приложения. NET (а также из Жабы). Однако приведенный выше запрос ничего не возвращает. И мне понадобится t Dynamine c sql, поэтому я хотел бы вернуть тот же результат, используя вышеуказанный SP.

CREATE OR REPLACE PROCEDURE PHX_EPI.sp_test2
(
    cursor_ OUT SYS_REFCURSOR
)
AS
BEGIN
    OPEN cursor_ FOR
    SELECT my_table.* FROM my_table;
END;
/
...