当前位置: 首页 > 知识库问答 >
问题:

如何在选择查询中使用游标字段

鲜于宜修
2023-03-14

我在这里尝试使用光标,我想知道如何访问选择列中的光标字段?

我有一个如下的实现,

create or replace TYPE  "TABLE_TYPE_SAMPLE" AS OBJECT(
   ENTITY_NAME            VARCHAR2(100)
);
create or replace TYPE  "TABLE_SAMPLE" AS TABLE OF TABLE_TYPE_SAMPLE; 
    CREATE OR REPLACE FUNCTION segmentFields(
   txnId            VARCHAR2)
    RETURN TABLE_SAMPLE
IS
attValue VARCHAR2(20);
 curStr   VARCHAR2(20);

  flexTable  TABLE_SAMPLE := TABLE_TYPE_SAMPLE();

 CURSOR cur_seg
 IS
   (SELECT colA
   FROM table1 -- (table name has column colA)
   WHERE id = txnId
   );
BEGIN
 FOR cur_recd IN cur_seg
 LOOP
   curStr := cur_recd.colA;
   SELECT curStr into attValue FROM PER_PEOPLE_GROUPS;

flexTable.EXTEND;
   flexTable(flexTable.count) := (TABLE_TYPE_SAMPLE(attValue)) ;
 END LOOP;
RETURN flexTable;
END; 
select * from table(segmentFields(480));

我想明白,这个实现有什么问题。

谢谢你。

共有1个答案

巢靖
2023-03-14

问题是选择进入。我不知道为什么会有这个。游标的值可以在cur_recd.cola中获得,您可以直接使用它。

create or replace function segmentfields(txnid varchar2) return table_sample is

   flextable table_sample := table_type_sample();

   cursor cur_seg is(
      select cola
        from table1 -- (table name has column colA)
       where id = txnid);
begin
   for cur_recd in cur_seg
   loop
      flextable.extend;
      flextable(flextable.count) := (table_type_sample(cur_recd.cola));
   end loop;
   return flextable;
end;
 类似资料:
  • 我使用以下JSON结构处理来自Kafka的消息: 我想打印出我收到的内容。这是我已经完成的代码片段: 模式方法: 问题是,我在从Spark编写时不断收到错误: 线程“main”组织中出现异常。阿帕奇。火花sql。AnalysisException:无法解析数据。category\u id'给定的输入列:[JSONTStruct(value)];;'项目['data.category\u id]-子

  • 问题内容: 我有一个查询,看起来像这样: 这是一个非常基本的查询。除了提取Item的值之外,我还想将其他值添加到混合中,然后将其返回给我。在原始SQL中,我会这样做: 如何通过sqlalchemy手动添加该值? 问题答案: 您需要使用,看起来有点像这样: 注意,该参数无需任何转换即可插入查询;如果您从应用程序外部接受text参数的值,则可能使您暴露于SQL Injection漏洞。如果这是您需要的

  • 问题内容: 我有一个正在处理的查询,我想增加一个字段并在键值不同时重新启动计数器。 我知道这段代码行不通。以编程方式,这就是我想要的… …最终结果看起来像这样: 是的,我坚持使用SQL2k。否则,该row_number()将起作用。 问题答案: 假设一个表: 在Microsoft SQL Server 2000中获得此权限的一种方法是使用子查询对具有相同ID和较低顺序的行进行计数。 提示: 现在是

  • 我试图使用JPA标准编写以下查询,但我无法选择子查询中的多列。 我陷入了下面的实现过程中,无法找到如何在子查询中选择多个列。请看我在代码中的评论(第三行)。 请帮我解决这个问题。

  • 如何将此MongoDB查询转换为C#等价查询? 我尝试了以下方法,但没有成功,这意味着它不会返回与我在shell中得到的相同的结果: 我想查询文档的主列表,提取_id10的文档,并从其数组中提取id等于1的数组项。我上面提供的MongoDB字符串查询在shell中工作,但是我不知道如何在C#中编写等效的查询。提前感谢。

  • 问题内容: 在MS Access中,我想在选择查询的返回结果中插入新列。新列的每一行都具有相同的值。例如,我的选择返回列A,B,而我希望C成为选择查询创建的新列: 问题答案: