【问题标题】:I want to insert a column values of a table into varray collection in PL/SQL [closed]我想在 PL/SQL 中将表的列值插入到 varray 集合中[关闭]
【发布时间】:2013-09-11 07:05:54
【问题描述】:

我想在 PL/SQL 中将表的列值插入到 varray 集合中。 请你指导我完成这个

【问题讨论】:

标签: varray


【解决方案1】:

这是我的尝试:

create table my_test ( id number,date_time date, person_id number);

Insert into my_test (ID,DATE_TIME,PERSON_ID) values (1,to_date('10-SEP-13','DD-MON-RR'),112);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (2,to_date('10-SEP-13','DD-MON-RR'),113);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (3,to_date('10-SEP-13','DD-MON-RR'),114);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (4,to_date('10-SEP-13','DD-MON-RR'),115);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (5,to_date('10-SEP-13','DD-MON-RR'),116);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (6,to_date('10-SEP-13','DD-MON-RR'),117);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (7,to_date('10-SEP-13','DD-MON-RR'),118);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (8,to_date('10-SEP-13','DD-MON-RR'),119);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (9,to_date('10-SEP-13','DD-MON-RR'),120);
Insert into my_test (ID,DATE_TIME,PERSON_ID) values (10,to_date('10-SEP-13','DD-MON-RR'),121);           

CREATE OR REPLACE TYPE integer_varray AS VARRAY(100) OF INTEGER NOT NULL;

SET SERVEROUTPUT ON
DECLARE
     varray_integer integer_varray := integer_varray();
     l_limit number;
BEGIN

select count(*) into l_limit from my_test;
     FOR i IN 1..l_limit LOOP
          varray_integer.EXTEND;

          SELECT person_id 
          INTO varray_integer(i) 
          FROM my_test WHERE ID = i;

     END LOOP;


     FOR i IN 1..l_limit loop
     dbms_output.put_line(varray_integer(i));
     END loop;
END;


anonymous block completed
112
113
114
115
116
117
118
119
120
121

或者不创建类型, 你可以

`

DECLARE
     type integer_varray  IS VARRAY(100) OF INTEGER NOT NULL;
     varray_integer integer_varray := integer_varray();
     l_limit number;
BEGIN

... `

【讨论】:

  • Ajmal,非常感谢您的回答。但是我面临一个小问题。我尝试在 SQL Developer 中执行上述代码。它运行良好,但在显示“匿名块已完成”后,没有显示值。你介意回答这个吗...
  • 确保SET SERVEROUTPUT ON
  • 它正在工作。再次感谢
  • 嘿 Ajmal,你知道如何从 java 代码中获取这个变量吗???
  • 没关系。没问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2012-01-18
  • 1970-01-01
相关资源
最近更新 更多