在Oracle plsql中每个唯一值合并两个索引嵌套表

安东尼·西蒙(Anthony Simmon)

我有这种记录类型,VARCHAR2的列表:

TYPE varchar2_array IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;

在我的PLSQL中,我有两个这样的数组,我想将每个唯一将它们合并到第三个数组中就像是 :

DECLARE
    TYPE varchar2_array IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;

    foo    varchar2_array;
    bar    varchar2_array;
    foobar varchar2_array;
BEGIN

    foo(1) := '1';
    foo(2) := '2';
    foo(3) := '3';

    bar(1) := '2';
    bar(2) := '3';
    bar(3) := '4';

    foobar := unique_merge (foo, bar);

    FOR i IN 1 .. foobar.COUNT LOOP
        DBMS_OUTPUT.PUT_LINE('foobar(' || i || ') : ' || foobar(i));
    END LOOP;

    -- output : 1, 2, 3, 4

END;

我正在寻找一种简单的方法来做到这一点。谢谢。

埃利亚图

尝试MULTISET UNION DISTINCT。解决方案可能是这样的

customer_list_3 := customer_list_2  MULTISET UNION DISTINCT customer_list_1

编辑:

好的,我犯了一个错误,我没有看到这不是一个嵌套表。

以下是可能的推动力:

DECLARE
    TYPE VAR_TABLE_TYPE IS TABLE OF VARCHAR2(10);
    TYPE varchar2_array IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;

    foo    varchar2_array;
    bar    varchar2_array;
    foobar varchar2_array;
    foobar_tmp VAR_TABLE_TYPE:= VAR_TABLE_TYPE() ;
    j number;
BEGIN

    foo(1) := '1';
    foo(2) := '2';
    foo(3) := '3';

    bar(1) := '2';
    bar(2) := '3';
    bar(3) := '4';

j:=foo.count;

for i in foo.first .. foo.last
  loop
              foobar_tmp.EXtend;
            foobar_tmp(i) :=  foo(i) ;
  end loop;

for i in bar.first .. bar.last
  loop
              foobar_tmp.EXtend;
            foobar_tmp(j+i) :=  bar(i) ;
  end loop;

  foobar_tmp :=  SET (foobar_tmp) ;

for i in foobar_tmp.first .. foobar_tmp.last
  loop
 foobar(i) :=  foobar_tmp(i) ;
  end loop;  


for i in foobar.first .. foobar.last
  loop
    DBMS_OUTPUT.PUT_LINE('foobar(' || i || ') '||foobar(i));
    end loop;
END;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Oracle plsql中每个唯一值合并两个索引嵌套表

来自分类Dev

Oracle Query合并两个表

来自分类Dev

在Oracle中合并两个查询

来自分类Dev

在Oracle中合并两个查询

来自分类Dev

比较 Oracle 中的两个表

来自分类Dev

在Oracle SQL中将两个表合并为一个

来自分类Dev

Oracle DB只需并排合并两个表

来自分类Dev

Oracle DB只需并排合并两个表

来自分类Dev

oracle或db2中两个表之间的合并日期范围

来自分类Dev

oracle 将两个不同表中的记录插入到一个表中

来自分类Dev

如何合并两个Oracle QUERY

来自分类Dev

合并两个查询Oracle SQL

来自分类Dev

什么唯一标识Oracle中的索引?

来自分类Dev

从Oracle中的两个表删除SQL

来自分类Dev

如何在Oracle中插入两个表的总和?

来自分类Dev

在Oracle中对两个表求和和联接

来自分类Dev

同时更新两个表-Oracle

来自分类Dev

Oracle联接两个表

来自分类Dev

Oracle在两个表上更新

来自分类Dev

查询两个表的条件(Oracle)

来自分类Dev

合并语句在尝试合并两个表时在oracle上给出错误

来自分类Dev

在Oracle SQL中串联两个列值

来自分类Dev

比较来自同一表的oracle中的两个连续行

来自分类Dev

在一个SQL查询中合并两个表,并使日期值唯一

来自分类Dev

Oracle:单个多列索引或两个单列索引

来自分类Dev

在Oracle中都有两个主键时,如何从另一个表插入到表中?

来自分类Dev

是否可以从PHP中的两个不同服务器连接两个表(一个Mysql,另一个Oracle)?

来自分类Dev

Oracle SQL比较数据并检索Oracle DB中两个表之间的不匹配行

来自分类Dev

在Oracle中减去两个日期