我正在从Oracle表中获取一些数据,并使用控制流中的SSIS 脚本任务插入到Netezza表中。
目标:在目标表中填充代理键(类似于着陆ID)字段。
目前,该查询看起来如下:
insert into destination_table
(
id, col1, col2, col3
)
select (SELECT NEXT VALUE FOR MY_SEQUENCER), field1, field2, field3
from source_table我使用一个Netezza (MY_SEQUENCER)来生成一个唯一的数字,但是在查询提交之前,序列值不会增加。因此,在插入数据之后,我得到:
1, val1, val2, val3
1, val4, val5, val6
...后续运行:
2, val1, val2, val3
2, val4, val5, val6
...诸若此类。
有没有一种无需使用序列就能实现这一目标的方法?
非常感谢你的阅读和你可能提供的任何想法/提示/建议。
发布于 2016-05-09 19:46:50
我在这里看到了决议. In Netezza I'm trying to use a sequence in a case statement but the sequence value doesn't increment
insert into destination_table
(
id, col1, col2, col3
)
select (NEXT VALUE FOR MY_SEQUENCER), field1, field2, field3
from source_table发布于 2016-05-26 03:40:36
删除括号和冗余select,它将为每一行生成一个新值。
TESTDB.ADMIN(ADMIN)=> select (select next value for mysequence), col1, col2 from test2 limit 5;
?COLUMN? | COL1 | COL2
----------+------+------
2 | 0 | 0
2 | 2 | 2
2 | 4 | 4
2 | 6 | 6
2 | 8 | 8
(5 rows)
TESTDB.ADMIN(ADMIN)=> select next value for mysequence, col1, col2 from test2 limit 5;
NEXTVAL | COL1 | COL2
---------+------+------
200001 | 1 | 1
200002 | 3 | 3
200003 | 5 | 5
200004 | 7 | 7
200005 | 9 | 9
(5 rows)https://stackoverflow.com/questions/37123730
复制相似问题