Проблемы с объемным вставкой SQLMySql

Форум по Mysql
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с объемным вставкой SQL

Сообщение Anonymous »

Использование MS SQL Server и MS SSM. быть вставленным, но вставленные данные были неправильными. ДАННЫЕ.

Код: Выделить всё

    -- Create the Signals table
CREATE TABLE Signals (
ID INT IDENTITY(1,1) PRIMARY KEY,
SignalName NVARCHAR(255) NOT NULL,
SignalUnit NVARCHAR(50)
);
GO

-- Create the Series table
CREATE TABLE Series (
ID INT IDENTITY(1,1) PRIMARY KEY,
SeriesType NVARCHAR(255) NOT NULL,
ReferenceSignalID INT,
FOREIGN KEY (ReferenceSignalID) REFERENCES Signals(ID)
);
GO

-- Create the SeriesData table
CREATE TABLE SeriesData (
ID INT IDENTITY(1,1) PRIMARY KEY,
SeriesID INT,
SignalID INT,
SignalValue FLOAT NULL, -- I queried the precision of this and it is "53"
ReferenceSignalValueID INT NULL,
FOREIGN KEY (SeriesID) REFERENCES Series(ID),
FOREIGN KEY (SignalID) REFERENCES Signals(ID),
FOREIGN KEY (ReferenceSignalValueID) REFERENCES SeriesData(ID)
);
GO
< /code>
Пример CSV Содержание (уменьшен из строк ~ 2000 в качестве примера): < /p>
29,953,0.0,
29,953,0.01000213623046875,
29,953,0.0200042724609375,
< /code>
Нет заголовков, но столбцы представляют собой серию. SignalID | SignalValue | Ссылки ignignalValueid (все пустые в этом примере - быть нулевым в базе данных)
(конечные символы линейки - «Cr» «LF» - кодирование UTF -8)
Я отсканировал и не могу видеть какого -либо Rogue / Скрытые/недействительные символы, все форматы, кажется, соответствуют цели.BULK INSERT SeriesData
FROM 'myPath\myData.csv'
WITH (
--FIELDTERMINATOR = ',',
--ROWTERMINATOR = '\r\n', -- also "\n" has an issue, but more errors
FORMATFILE = 'myPath\SeriesData.fmt',
CODEPAGE = '65001' -- obtained this from AI chats for UTF-8 encoding
--KEEPNULLS -- no change using this
)
< /code>
Файл .fmt, который у меня есть: < /p>
10.0
4
1       SQLINT              0       4       ","     1     SeriesID               ""
2       SQLINT              0       4       ","     2     SignalID               ""
3       SQLFLT8             0       8       ","     3     SignalValue            ""
4       SQLINT              0       4       "\r\n"  4     ReferenceSignalValueID ""
< /code>
(получило это из чата AI)ID    SeriesID    SignalID    ReferenceSignalValueID
6166    3355961 0   NULL    NULL
6167    3355961 0   NULL    NULL
6168    3355961 0   NULL    NULL
Для каждой строки CSV серия всегда составляет 3355961 Вместо 29, SignalID всегда 0 вместо 953, а SignalID всегда нулевой вместо фактического значения. p>
чат AI, который я использовал для отладки, и узнавать о том, как это сделать, предложил следующее содержание .fmt (но использование этого привело к тому же несоответствию типа ошибка): < /p>

Код: Выделить всё

10.0
4
1       SQLCHAR             0       12      ","     1     SeriesID               ""
2       SQLCHAR             0       12      ","     2     SignalID               ""
3       SQLCHAR             0       20      ","     3     SignalValue            ""
4       SQLCHAR             0       12      "\r\n"  4     ReferenceSignalValueID ""
< /code>
Кто -нибудь знает, как я могу получить SQL для правильного интерпретации значений, или есть что -то еще в принципе? использовали Fieldterminator и Rowterminator (как прокомментировано выше), и в этих случаях я получал ошибку: < /p>
Msg 4864, Level 16, State 1, Line 79
Bulk load data conversion error (type mismatch or invalid character for the specified codepage) for row 1, column 3 (SignalID).
Это относится к тому, что SignalID должен быть столбец 2, а не 3 - это не так ли, что не так с показателем CSV или SQL, а подход файлового файла .fmt не является достаточным/отвлекающим от «настоящая» проблема?

Подробнее здесь: https://stackoverflow.com/questions/794 ... mat-issues
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «MySql»