0

我有一张只有 4 列的表

第一列 - 来自另一个表的每一行的连接列值。这些列是根据元数据表中的列 ID 连接的。连接顺序与列 ID 的顺序相同。第二列 - 我有逗号分隔的主键列。现在,基于第二列中的主键,我需要更新第三列,它将从第一个连接字段中的每个字段中检索主键的值。

4列_它有表名。

我正在使用游标和字符串函数,它工作得非常好,但是当我测试它处理大量数百万数据时,它失败了,性能很差。

谁能给我一个相同的更新查询

有一个比较工具可以比较不同数据库中的两个表之间的数据但具有相同的数据结构,它将不匹配的行转储到一个表中,所有列连接(管道分隔)。列的顺序与列的顺序相同id 并且我知道该表的主键(连接但管道分隔)。因此,基于这些数据,我需要提取存在数据不匹配的主键值。

我需要做类似的事情

更新 column4(从 column2 中提取的主键值管道分离)

4

1 回答 1

0

检查此链接,也许会有用。通过该查询,您可以将一个值与您需要的字符连接起来(这适用于 11g2 版本,早期版本使用 xmlagg、xmlelement、extract 方法)。

CREATE TABLE TEST(
  FIELD INT);

INSERT INTO TEST VALUES(1);
INSERT INTO TEST VALUES(2);
INSERT INTO TEST VALUES(3);
INSERT INTO TEST VALUES(4);

SELECT listagg(FIELD,',' ) WITHIN GROUP (ORDER BY FIELD)
FROM TEST

返回 '​​1,2,3,4'

于 2013-06-27T20:08:29.227 回答