无法在oracle中创建表函数,在FETCH游标和INTO变量之间发现类型不匹配

ZZ3111

我试图创建一个表函数以在tableau的自定义SQL中使用,但出现错误,在FETCH游标和INTO变量之间发现类型不匹配。下面是我尝试的代码,我创建了一个类型对象和该类型对象的表。函数my_fct应该返回带有select语句输出的表。

CREATE
    OR replace type DATA_OBJ AS OBJECT (
     id varchar2(10)

    );  

CREATE
    OR replace type 
DATA_OBJ_TAB AS TABLE OF DATA_OBJ;


CREATE OR REPLACE FUNCTION my_fct()
    RETURN DATA_OBJ_TAB PIPELINED 
AS
    TYPE CurTyp IS REF CURSOR RETURN DATA_OBJ_TAB%ROWTYPE;
    rc CurTyp;

    CURSOR data IS SELECT ID from alumni_data;

BEGIN
    FOR rc IN data LOOP
        PIPE ROW (rc);
    END LOOP;
END;
小脚丫

看下面的例子:

SQL> create or replace type data_obj as object
  2    (id varchar2(10));
  3  /

Type created.

SQL> create or replace type
  2    data_obj_tab as table of data_obj;
  3  /

Type created.

SQL> create or replace function my_fct
  2    return data_obj_tab pipelined
  3  as
  4    l_vc data_obj := data_obj(null);
  5  begin
  6    for cur_r in (select id from alumni_data) loop
  7      l_vc.id := cur_r.id;
  8      pipe row (l_vc);
  9    end loop;
 10    return;
 11  end;
 12  /

Function created.

SQL> select * from table(my_fct);

ID
----------
CLARK
KING
MILLER

SQL>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

刚性类型变量不匹配

C ++函数定义和变量声明不匹配?

在FETCH游标和INTO变量之间的'EMPTYPE'中发现类型不匹配

如何从单个表中获取“匹配”和“不匹配”的行

函数参数类型不匹配

Mapper和Reducer之间的类型不匹配

消息240,列中的锚点和递归部分之间的类型不匹配

使用R中的查找表和mutate函数匹配变量名称

无法使用oracle中的游标在表中插入记录

Scala:函数组成中的类型不匹配,发现(Int,Int)=> Seq [Int]需要吗?=> Seq [Int]

创建这些表:无法创建约束或索引:数据类型不匹配

在F#中,“期望”和“给定”之间类型不匹配的错误是什么意思?

在表函数中插入表集合类型,而无需在PL / SQL中使用显式游标

错误#7977:函数引用与其定义之间的类型不匹配

如何在此代码中解决(分配的左侧必须是变量)和(类型不匹配:无法从对象转换为字符串)?

Postgres中的函数和游标

在Slick GetResult中,Joda DateTime和sql Timestamp之间的类型不匹配错误

类型不匹配:在单独的类中创建FragmentOne时,无法从FragmentOne转换为Fragment吗?

Haskell函数中的类型不匹配

Spark中发现相同和所需数据类型的“错误:类型不匹配”

Scala 中的类型不匹配(hasNext 函数)

Kotlin - 高阶函数和类型不匹配

map函数中的Scala类型不匹配

工作表函数 Sum-if 导致错误类型不匹配

oracle中函数和年份变量之间

Kotlin 函数类型不匹配

Oracle使用游标创建函数

lambda 函数中的类型不匹配 - Kotlin

嵌套函数中的类型不匹配