从SYS_REFCURSOR

时间:2019-01-23 11:02:04

标签: oracle nestjs typeorm

是否可以从SYS_REFCURSOR中获取text / varchar的值?

我正在尝试获取将SYS_REFCURSOR返回到我的后端的数据:

await getManager().query("SELECT function(" + 6 + ", " + 2016 + ", " + 1 + ") AS VAL FROM DUAL")
                .then(
                    res => {
                        data = res;
                    },
                );

哪个结果

  

查询失败:SELECT function(6,2016,1)AS VAL FROM DUAL

     

错误:错误:NJS-010:第1列中不受支持的数据类型2021

这是执行函数的数据,我正在尝试将其转换为text / varchar: enter image description here

我尝试替换了从中返回的数据值 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:数据类型不一致:预期的数字为CURSER   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的值?

0 个答案:

没有答案