我们是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 2000到PostgreSQL的数据库复制
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),
)
非常感谢你。
也许最好问在[DBA](http://dba.stackexchange.com/)。 – Filburt 2012-04-16 07:27:13
欢迎使用StackOverflow:如果您发布代码,XML或数据样本,请**在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(“{}”)以精确地格式化和语法突出它! – 2012-04-16 07:30:11
“*数据类型转换为*”:哪种工具执行此转换?你可以预先创建表格manuall,以便这种(显然是错误的)自动转换不会发生? – 2012-04-16 10:37:02