Function 创建一个";项目“列表功能”;它具有以下特性(PLSQL)

Function 创建一个";项目“列表功能”;它具有以下特性(PLSQL),function,dynamic,plsql,Function,Dynamic,Plsql,我正在尝试创建一个具有以下功能的“item\u list函数”: 指定TRUNC(SYSDATE)+1作为pv\u end\u date参数的默认值 创建一个反映项目对象类型的item\u rec记录类型 创建一个弱类型游标的item\u cur系统引用游标 创建item rec数据类型的item\u行变量 创建item_选项卡集合类型的item_集合变量,并创建item_选项卡集合的空实例 创建stmt字符串变量以保存本机动态SQL(NDS)变量 将NDS字符串分配给stmt变量。字符串应返回

我正在尝试创建一个具有以下功能的
“item\u list函数”

  • 指定
    TRUNC(SYSDATE)+1
    作为
    pv\u end\u date
    参数的默认值
  • 创建一个反映项目对象类型的
    item\u rec
    记录类型
  • 创建一个弱类型游标的
    item\u cur
    系统引用游标
  • 创建item rec数据类型的
    item\u行
    变量
  • 创建item_选项卡集合类型的
    item_集合
    变量,并创建item_选项卡集合的空实例
  • 创建stmt字符串变量以保存本机动态SQL(NDS)变量
  • 将NDS字符串分配给stmt变量。字符串应返回以下列:

    • item\u title
      别名为
      title
    • item\u subtitle
      别名为
      subtitle
    • item\u rating
      别名为
      rating
    • 项目发布日期
      别名为
      发布日期
    WHERE
    子句应检查MPAA的
    项目评级机构
    值和
    项目发布日期

    • pv\u开始日期
      pv\u结束日期
      值绑定变量
    • 使用stmt动态语句打开当前系统参考光标项,并使用子句在
      内分配
      pv\u开始日期
      pv\u结束日期
      变量
    • item\u cur
      系统参考光标移到
      item\u行
      数据类型的
      item\u rec
      变量中
    • 扩展
      item_选项卡
      集合的
      item_集合
      变量中的空间
    • 使用
      item_行
      变量创建
      item_集
      集合的实例
  • 我已经创建了一个
    项目对象
    项目选项卡
    以下是我需要帮助的部分:

    --create a item_list function
    CREATE OR REPLACE
      FUNCTION item_list
      ( pv_start_date   DATE
      , pv_end_date     DATE )
    
      RETURN item_tab IS
    
        /* Declare a record type. */
        TYPE item_rec IS RECORD
        ( title           VARCHAR2(60)
        , subtitle        VARCHAR2(60)
        , rating          VARCHAR2(8)
        , release_date    DATE);
    
        /* Declare reference cursor for an NDS cursor. */
        item_cur   SYS_REFCURSOR;
    
        /* Declare a customer row for output from an NDS cursor. */
        item_row   ITEM_REC;
        item_set   ITEM_TAB := item_tab();
    
        /* Declare dynamic statement. */
        stmt  VARCHAR2(2000);
    
    BEGIN
        /* Create a dynamic statement. */
    
    stmt := SELECT 'title,  rating'|| FROM   'item '|| WHERE 'REGEXP_LIKE(release_date,''^.*''||:input||''.*$'')';
    
        /* Open and read dynamic cursor. */
        OPEN item_cur FOR stmt USING pv_start_date AND pv_end_date;
        LOOP
          /* Fetch the cursror into a customer row. */
          FETCH item_cur INTO item_row;
          EXIT WHEN item_cur%NOTFOUND;
    
          /* Extend space and assign a value collection. */      
          item_set.EXTEND;
          item_set(item_set.COUNT) :=
            item_obj   ( item_title        => item_title.title
                       , item_subtitle     => item_subtitle.subtitle
                       , item_rating       => item_rating.rating
                       , item_release_date => item_release_date.release_date );
        END LOOP;
    
        /* Return customer set. */
        RETURN item_set;
      END item_list;
    /
    
    --call the customer_list function
    desc item_list
    

    你完成你的问题了吗?是的,我完成了。我不知道如何更新这个东西。你完成你的问题了吗?是的,我完成了。我不知道如何更新这个东西。