-- 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 не является достаточным/отвлекающим от «настоящая» проблема?
Использование MS SQL Server и MS SSM. быть вставленным, но вставленные данные были неправильными. ДАННЫЕ.[code] -- 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 [/code] Для каждой строки CSV серия всегда составляет 3355961 Вместо 29, SignalID всегда 0 вместо 953, а SignalID всегда нулевой вместо фактического значения. p> чат AI, который я использовал для отладки, и узнавать о том, как это сделать, предложил следующее содержание .fmt (но использование этого привело к тому же несоответствию типа ошибка): < /p> [code]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). [/code] Это относится к тому, что SignalID должен быть столбец 2, а не 3 - это не так ли, что не так с показателем CSV или SQL, а подход файлового файла .fmt не является достаточным/отвлекающим от «настоящая» проблема?
У меня есть веб -API ASP.NET Framework 4.8, который раскрывает конечные точки, такие как:
get/api/data/{id}/subresource
Каждый запрос извлекает связанные данные с SQL Server с использованием Entity Framework. Первоначально все конечные точки были...
Это приложение .NET Winforms, когда пользователь нажимает кнопку «Отправить», мы просто открываем соединение с SQL Server и используем executeNoNquery , чтобы выполнить вставку Adhoc в Query. После этого мы закрываем соединение.
Это разделенный...
Я написал небольшой класс для обработки сообщений и извлечения из него некоторого контента. Сейчас я пытаюсь отследить эти данные с помощью телемарафона и вставить их в свою базу данных postgresql. Я также пытался вставить их с помощью метода...