SSIS:将数据转换时间戳(SQL server 2008 R2)转换为Bytea(PostgreSQL 9.5)



我有从SQL服务器集成到PostgreSQL的表。

在 SQL Server 中:

CREATE TABLE tbl_binary_test
(
    Col timestamp
);
insert into tbl_binary_test values(default);
insert into tbl_binary_test values(default);
select * from tbl_binary_test;
Col
-----------------------
0x00000000000007D1
0x00000000000007D2

在PostgreSQL中:

CREATE TABLE tbl_binary_test
(
    Col bytea
);

SSIS 包详细信息

来源: OLEDB (SQL Server(

目的地: ADO NET (PostgreSQL(

数据转换尝试:

  1. 字节流 - [DT_BYTES]

输出:

00000000000007321
00000000000007322
  1. Unicode 文本流 - [DT_NTEXT]

输出:

00000000000007D1    
00000000000007D2
  1. 字符串 - [DT_STR]

输出:

00000000000007D1
00000000000007D2

问:如何在PostgreSQL中插入与SQL服务器中相同的值?

我不确定我做对了,也许解码可以满足您的需求:

tp=# select 
  decode('00000000000007D1','hex')
, pg_typeof(decode('00000000000007D1','hex'));
       decode       | pg_typeof
--------------------+-----------
 x00000000000007d1 | bytea
(1 row)
Time: 0.680 ms

最新更新