首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PL/SQL11g>将数据放入记录表对象

PL/SQL11g>将数据放入记录表对象
EN

Stack Overflow用户
提问于 2014-09-03 14:18:14
回答 1查看 1.6K关注 0票数 0

我试图使用自定义记录和记录数据类型表从复杂的查询中提取数据(这里已经简化),但是由于"PLS-00308:此结构不允许作为赋值“错误的来源,我无法将数据输入表。我仔细地学习了这些例子,但不理解问题所在。有人能指点我的方向吗。

这是密码

代码语言:javascript
复制
TYPE CORE_REC IS RECORD 
      (
           OrgID CHAR(20 BYTE)
           , StoreNumber VARCHAR2(200 BYTE)
           , StoreName VARCHAR(200 BYTE)
           , AssociateName VARCHAR2(300 BYTE)
      );

 TYPE CORE_REC_CURSOR IS REF CURSOR RETURN CORE_REC;

 TYPE CORE_REC_TABLE IS TABLE OF CORE_REC INDEX BY BINARY_INTEGER;

  FUNCTION CORE_GETCURRS (
      OrgID IN CHAR
 ) RETURN HDT_CORE_MAIN.CORE_REC AS

 CurrTable HDT_CORE_MAIN.CORE_REC;
 i BINARY_INTEGER := 0;

 CURSOR CurrCursor IS
      WITH
           CoreCurrs AS
                (SELECT
                     busSTR.id AS OrgID
                     , busSTR.name AS StoreNumber
                     , busSTR.name2 AS StoreName
                     , emp.lname || ', ' || emp.fname || ' ' || emp.mname AS AssociateName
                     FROM tp2.tpt_company busSTR
                          INNER JOIN tp2.cmt_person emp
                               ON busSTR.ID = emp.company_id
                     WHERE
                          busSTR.id = OrgID
                )
      SELECT
           CoreCurrs.OrgID
           , CoreCurrs.StoreNumber
           , CoreCurrs.StoreName
           , CoreCurrs.AssociateName
           FROM CoreCurrs
      ;
 BEGIN
     DBMS_OUTPUT.ENABLE(1000000);
     OPEN CurrCursor;
     LOOP
          i := i + 1;
          FETCH CurrCursor INTO CurrTable(i);
          EXIT WHEN CurrCursor%NOTFOUND;
     END LOOP;
     CLOSE CurrCursor;
     RETURN CurrTable;

  END CORE_GETCURRS;

在FETCH语句中抛出错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 14:46:23

您的变量类型不对,应该是:

代码语言:javascript
复制
 CurrTable HDT_CORE_MAIN.CORE_REC_TABLE;

目前,您正在尝试选择一个记录的元素,而不是一个表的元素,这是没有意义的。当它被定义为CORE_REC时,引用CurrTable(i)并不意味着什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25646748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档