2011-03-30 52 views
0

我在將表導入到oracle時遇到問題。當我導入一個字段是例如導入:
在訪問我已經'20,200' 和進口到Oracle‘‘中訪問和導入oracle作爲‘12535’向oracle導入訪問表

在訪問20’或’125.35它被聲明作爲數字,並在oracle中它已經改爲文本,浮動...

// --------------------------- -------------------------------------------------- ------編輯-----------

只是一個問題的領域。 Yhe字段在訪問時被聲明爲數字,並且當我導入表時訪問它將字段轉換爲binary_char

並導入確定,但隨後我將該類型更改爲浮動或文本或其他,並且當我導入信息時到該表,將其導入的字段這樣的例子:

在訪問:'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

我不清楚你到底在做什麼,以及你在看什麼。 Access中的一個或兩個問題字段定義或Oracle中的對應字段可能會有所幫助。此外,你看到了什麼,以及你想看到什麼。 – DCookie 2011-03-30 14:29:28

+0

剛剛添加了關於該問題的新信息 – Luis 2011-03-30 15:07:20

+0

我們仍然需要更多... INFAR_Emb和Emb如何在其各自的數據庫中定義以及哪個字段出錯。 – BIBD 2011-03-30 18:21:44

回答

0

剛發現什麼是錯的..我必須再次創建odbc來承擔表的新值。進口現在工作很好:) .. tks所有

0

嗯,我不認爲有可能有字段/列定義爲float precison 10, number 8,3, nvarchar 15 - 除非這是你所嘗試的所有選項;不過,我會推測,它是真正FLOAT(8)

如果我錯了,請嘗試在SQL *下面加上(或等效的Oracle客戶端)

describe INFAR_Emb 

,並張貼在現場/列的結果有問題。

關於我的假設。 FLOAT就是這樣,如果你輸入一個精度,它就是一個Binary Precision,而不是十進制。如果乘以0.30103,您將得到它將保持的精度的近似小數位數。在FLOAT(8)的情況下,它的〜2

這就解釋與125.35問題,這輪以125,但不20200(我假設你添加逗號,當你問你的問題) - 這留下更多一些思考。

將字段/列更改爲NUMBER(沒有精度或比例)並完成它可能就足夠了。