将Access表导入oracle

时间:2011-03-30 10:41:43

标签: oracle ms-access

我在将表导入oracle时遇到问题。当我导入它时,一个字段是导入的,例如:
在访问中我有'20,200'并导入到oracle'20'或'125.35'访问并导入到oracle为'12535'

在访问中它被声明为数字,在oracle中它已经被改为文本,浮动......

// --------------------------------------------- --------------------------------------编辑-----------

只是一个有问题的领域。访问中的yhe字段被声明为数字,当我导入表进行访问时,将字段转换为binary_char

然后导入OK,但后来我将该类型更改为float或text或其他,当我将信息导入该表时,它会导入如下示例的字段:

访问权限:'20,200' - >到oracle '20'

访问权限:'125.35' - >到oracle'12535'

这是我使用的代码:

Option Compare Database

Function load_tables()

    Dim resposta

    varReturn = SysCmd(acSysCmdInitMeter, " ", 36)
    varReturn = SysCmd(acSysCmdSetStatus, " ")

    DoCmd.SetWarnings False

    varReturn = SysCmd(acSysCmdSetStatus, "Insert In Emb")
    DoCmd.RunSQL "INSERT INTO INFAR_Emb( Emb_ID, N_Registo, Descr, Compart, " & _
                                    "Data_Compart, Grupo_Hom_ID, Me_ID, " & _
                                    "Data_Alter, Data_Alt_Comp) " & _
                "SELECT [Emb_ID], [N_Reg], [Descr], [Compart], " & _
                                    "[Data_Compart], [Grupo_Hom_ID], " & _
                                    "[Me_ID], [Data_Alter], [Data_Alt_Comp] " & _
                                    "FROM [Emb] where [Emb_ID]=257"

2 个答案:

答案 0 :(得分:0)

好吧,我不认为将字段/列定义为float precison 10, number 8,3, nvarchar 15是不可能的 - 除非这是您尝试的所有选项;但是,我会假设它确实是FLOAT(8)

如果我错了,请在SQL * Plus(或等效的Oracle客户端)

中尝试以下操作
describe INFAR_Emb 

并发布相关字段/列的结果。

关于我的假设。事情是FLOAT,如果你输入精度,它是Binary Precision,而不是小数。如果乘以0.30103,您将得到它将保持的近似精度小数位数。在FLOAT(8)的情况下,它是〜2

这可以解释125.35的问题,它转向125,而不是20200(我假设您在提出问题时添加了逗号) - 留下一些问题更多的是思考。

将字段/列更改为NUMBER(没有精度或比例)可能就足够了,并且可以完成。

答案 1 :(得分:0)

只是发现什么是错的..我必须再次创建odbc来承担表的新值。输入现在工作得很好:) .. tks all