我在windows平台在迁移数据库的时候发生问题,我想把一个数据库完全迁移到postgresql,在复制表以及视图的没有问题,但是在拷贝数据的时候出现问题我找了很多办法,下个一些转换工具,还有copy puser from 'e:/puser.txt' with null as '';  上面这个语句,就是先把数据从原数据以文本文件的形式导出,在拷贝到postgresql数据库中去,  总是包错ERROR:  invalid input syntax for integer: 因为原数据库中的表均是在一个schema中,我怀疑是schema 导致数据不能顺利导出,但是我又不知道怎么解决,清大家帮帮忙  弄己天了。

解决方案 »

  1.   

    这是两个不同的数据库,只能将数据导入,其它的关系、SP、TRIGGER等等
    都要重新生成,将SQL SERVER的数据导成TXT文件,再导入POSTGRESQL试试
      

  2.   

    参考一下:
    http://db.rdxx.com/PostgreSQL/2006-3/25/0139230632501392312060.shtml转换数据库是挺麻烦的
      

  3.   

    谢谢楼上的,我刚刚重新设置了 schema ,也不对,
    如你所说,我是先把数据库导出为 txt 再copy puser from 'e:/puser.txt' with null as '';  用这个命令,主要是在 int类型这出错,我又不知道怎么去解决,查了很多资料。都没解决。 谢谢大概是说不 int类型在 postgresql 默认不能为null
      

  4.   

    呵呵,postgresql没有用过,对于默认不能为null,修改为其它值
    看看能否导入,用一个表来测试。
      

  5.   

    刚刚又实验了,发现是schema的问题,你知道怎么把schema 转换到另一个数据库吗/
    默认情况下,在拷贝数据的时候,数据库会拷贝 dbo 下数据
      

  6.   

    是POSTGRESQL吧,SORRY,不会,呵呵
      

  7.   

    1、写程序,用 odbc 连接吧。
    2、先导成大家都认识的文件,比如文本文件,然后再倒入。
      

  8.   

    1、写程序,用 odbc 连接吧。
    2、先导成大家都认识的文件,比如文本文件,然后再倒入。
      

  9.   

    1、写程序,用 odbc 连接吧。
    2、先导成大家都认识的文件,比如文本文件,然后再倒入。