Импорт таблицы доступа к оракулу - PullRequest
0 голосов
/ 30 марта 2011

У меня проблема с импортом таблицы в Oracle.Когда я импортирую его, поле импортируется, например:
В доступе у меня есть '20, 200 'и импорт в oracle' 20 'или' 125.35 'в доступе и импорт в oracle как' 12535 '

В доступеон объявлен как число, а в oracle он уже заменен на текст, плавать ...

// ----------------------------------------------------------------------------------- РЕДАКТИРОВАТЬ -----------

Это только поле, которое создает проблемы.Yhe поле в доступе объявляется как число, и когда я импортирую таблицу для доступа к нему, преобразую поле в binary_char

и импортирую OK, но затем я изменяю этот тип на float или text, или другой, и когда яимпортировать информацию в эту таблицу, она импортирует поля, подобные этим примерам:

В доступе: '20, 200 '-> к оракулу' 20 '

В доступе:' 125.35 '-> к оракулу'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 голосов
/ 06 апреля 2011

просто найди что не так .. мне нужно снова создать odbc, чтобы принять новые значения таблицы.импорт теперь работает отлично :) tks all

0 голосов
/ 31 марта 2011

Ну, я не думаю, что можно иметь поле / столбец, определенный как 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 (без точности или масштаба) и покончить с этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...