Как передать список строк хранимой процедуре в Olracle - PullRequest
0 голосов
/ 26 февраля 2019

Как я могу передать список строк хранимой процедуре?это моя хранимая процедура:


CREATE OR REPLACE PROCEDURE sp_search (p_name     IN VARCHAR2,
                                       r_cursor      SYS_REFCURSOR)
AS
BEGIN
    OPEN cursor FOR SELECT name
                      FROM tableN
                     WHERE name IN (p_name);
END;

Пример:

var c_ref refcursor; 
sp_search('Andy,Marty,miky',:c_ref);
print c_ref;

1 Ответ

0 голосов
/ 26 февраля 2019

Я думаю, это должно сделать это

CREATE OR REPLACE PROCEDURE sp_search (
    p_name     IN VARCHAR2,
    r_cursor   OUT  SYS_REFCURSOR)
AS
Declare
    v_sql  VARCHAR2(200); 
BEGIN

    v_sql := 'SELECT name FROM table WHERE name IN (' || p_name || ')';
    OPEN r_cursor FOR v_sql;

END;

Только убедитесь, что когда вы передаете Andy,Marty,miky, вы добавляете ' так, чтобы окончательный sql выглядел как

SELECT name FROM table WHERE name IN ('Andy','Marty','miky')
...