在 Oracle SQL 中创建和填充 Varray

Posted

技术标签:

【中文标题】在 Oracle SQL 中创建和填充 Varray【英文标题】:Create and populate Varray in Oracle SQL 【发布时间】:2016-12-15 11:24:28 【问题描述】:

我正在尝试创建一个 bean 类型的 Varray 并填充它,但我很着急,没有找到任何有用的示例。

arr=[[1,'A'],[2,'B'],[3,'C']]

这是我的代码:

 create table my_table (NUM_OPERACIO NUMBER,TITULS varchar2(3)) ;
 insert into my_table values(1,'A');
 insert into my_table values(2,'B');
 insert into my_table values(3,'C');

 create TYPE item IS object( NUM_OPERACIO NUMBER, TITULS varchar2(3)); 
 /
 create TYPE arr IS VARRAY(10) OF item;
 /

 insert into arr values( select NUM_OPERACIO, TITULS from my_table);

 FOR i IN 1..3 loop
     dbms_output.put_line(arr (i));
 END loop;

请帮我实现这个目标。

提前致谢

【问题讨论】:

【参考方案1】:

Oracle 设置

create table my_table (NUM_OPERACIO NUMBER,TITULS varchar2(3)) ;
insert into my_table values(1,'A');
insert into my_table values(2,'B');
insert into my_table values(3,'C');

CREATE TYPE item IS object( NUM_OPERACIO NUMBER, TITULS varchar2(3)); 
/
CREATE TYPE item_array IS VARRAY(10) OF item;
/

PL/SQL

DECLARE
  arr item_array;
BEGIN
  SELECT item( NUM_OPERACIO,TITULS )
  BULK COLLECT INTO arr
  FROM   my_table;

  FOR i IN 1..arr.COUNT loop
    dbms_output.put_line(arr(i).NUM_OPERACIO || ', ' || arr(i).TITULS);
  END loop;
END;
/

【讨论】:

以上是关于在 Oracle SQL 中创建和填充 Varray的主要内容,如果未能解决你的问题,请参考以下文章

Oracle Sql Developer如何在Oracle中创建和设置角色?

从 C#/.Net 在 oracle 中创建和编译“动态”存储过程

在 sql server 2008 中创建和修改时间戳

在 SQL 中创建和更改表值函数时对象类型不兼容

在 SQL (mariadb) 中创建和计算 z 分数列

序列号,在 SQL Server 中创建和修改