Можно ли получить значение из SYS_REFCURSOR как text / varchar?
Я пытаюсь получить данные, которые возвращают SYS_REFCURSOR в мой бэкэнд:
await getManager().query("SELECT function(" + 6 + ", " + 2016 + ", " + 1 + ") AS VAL FROM DUAL")
.then(
res => {
data = res;
},
);
Какой результат
запрос не выполнен: функция SELECT (6, 2016, 1) AS VAL FROM DUAL
ошибка: ошибка: NJS-010: неподдерживаемый тип данных 2021 в столбце 1
Это данные от выполнения функции, которые я пытаюсь преобразовать в text / varchar:
Я пытался заменить значение возвращаемых данных из
RETURN SYS_REFCURSOR AS TOTAL SYS_REFCURSOR;
в RETURN VARCHAR2 AS TOTAL SYS_REFCURSOR;
В РЕЗУЛЬТАТЕ:
Ошибка (4,3): PL / SQL: оператор игнорируется
Ошибка (4,10): PLS-00382: выражение имеет неправильный тип
И я попробовал использовать:
SELECT TO_CHAR(function(6, 2016, 1)) AS VAL FROM DUAL
Возвращение:
ORA-00932: несовместимые типы данных: ожидаемое число получило курсор
00932. 00000 - «несовместимые типы данных: ожидаемый% s получил% s»
* Причина:
* Действие: Ошибка в строке: 1 столбец: 16
SELECT (function (6, 2016, 1).to_string) AS VAL FROM DUAL
Возвращение:
ORA-22806: не объект или REF
22806. 00000 - «не объект или REF»
* Причина: была сделана попытка извлечь атрибут из элемента, который
ни объект, ни REF.
* Действие: используйте тип объекта или элемент типа REF и повторите операцию. Ошибка в строке: 1 столбец: 9
Если я использую select нормально (SELECT function(7,2016,1) AS VAL FROM DUAL
), он вернет:
{<JAN=253715.1141718013773106197897789054005074,FEB=252780.5864509605662285136501516683518706,MAR=261291.5266890630832400149309443822321762,APR=263633.6245857185899367279300994275384152,MAY=265071.1905483186913056649500151469251742,JUN=257069.4087403598971722365038560411311054,JUL=265553.8694992412746585735963581183611533,AUG=267297.9990835497174278295402474415762945,SEP=263157.8947368421052631578947368421052632,OCT=269272.1957224188336667179566087090321588,NOV=268178.6836257758026204888514290092713202,DEC=258055.00258055002580550025805500258055>,}
Несколько ссылок, которые я посетил и попробовал:
В данный момент я использую запрос хранимой процедуры для получения данных. Но возможно ли получить значение из SYS_REFCURSOR как text / varchar?