Явная таблица передачи курсора в качестве параметра PLS-00382 - PullRequest
0 голосов
/ 02 июля 2018

У меня есть функция с таблицей типа UDT, как в параметре. Цель функции - вернуть JSON-клоб в вызывающую среду. К сожалению, тело пакета скомпилировано с ошибкой:

Ошибки компиляции для PACKAGE BODY JOHN.packageA # 13 # 10 Ошибка: PLS-00382: выражение неправильного типа Строка: 8 Текст: от лиц где id член v_ids;

Разве нельзя использовать член оператора с ассоциативными массивами? Какой другой подход я должен использовать?

CREATE OR REPLACE Package packageA As

   TYPE ids_tbl is Table of Number(10) INDEX BY PLS_INTEGER;   

   function get_people_json (p_custIds in ids_tbl) return clob;

End;

CREATE OR REPLACE Package Body PackageA As

  function get_people_json (p_custIds in ids_tbl) 
    return clob

    is

    cursor people_cur(v_ids ids_tbl) select * from persons where id member of v_ids;

    TYPE people_aat IS TABLE OF people_cur%ROWTYPE
    INDEX BY PLS_INTEGER;



    ....

    Begin

      open people_cur(p_custIds);
      ....



      return l_clob;

    End;
 End;

С уважением Magnus

...