我在将表导入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"
答案 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