我们是 SQL Server 用户,最近我们在 PostgreSQL 上有一个数据库。为了保持一致性,我们将 SQL Server 2000 上的数据库复制到 SQL Server 2000 上的其他数据库,现在我们还需要将它复制到 PostgreSQL 上的数据库。我们能够使用 ODBC 和链接服务器来做到这一点。我们为 PostgreSQL 上的数据库创建了一个 ODBC DSN,并使用该 DSN 在 SQL Server 上创建了一个链接服务器。我们能够将表从 SQL Server 数据库复制到该链接服务器,从而成功复制到 PostgreSQL 数据库。现在面临的问题是在复制时,数据类型位、数字(12,2)和小数(12,2)分别转换为字符(1)、字符(40)和字符(40)。有没有关于如何在 PostgreSQL 数据库中保留这些数据类型的解决方案?我的意思是这个位应该变成布尔值,并且数字和十进制数据类型应保持在 postgresql 的复制表中。我们正在使用 PostgreSQL 9.x
SQL Server 表,
CREATE TABLE tmtbl
(
id int IDENTITY (1, 1) NOT NULL PRIMARY KEY,
Code varchar(15),
booleancol bit,
numericcol numeric(10, 2),
decimalcol decimal(10, 2)
)
在被复制到 PostgreSQL 之后,它变成了,
CREATE TABLE tmtbl
(
id integer,
"Code" character varying(15),
booleancol character(1),
numericcol character(40),
decimalcol character(40),
)
非常感谢。