SQL导入/创建SMILE化学结构中的列

时间:2014-11-05 01:56:22

标签: sql csv types

我们尝试导入一个csv文件,其中第一列包含化学结构(SMILE),如下所示

 c1cccc(c12)n(C)c(c2)CN(C)C(=O)c(c3)ccc(c34)NCC(=O)N(C4)C,14-BENZODIAZEPINEDERIV.4_145,1
 c1cccc(c12)n(C)c(c2)CN(C)C(=O)c(c3)ccc(c34)N[C@H](C(=O)N(C4)C)CC(=O)OC,14-BENZODIAZEPINEDERIV.3_146,1

以下是SQL

中的代码
--Define Table
CREATE TABLE Amide_actives_test
(Structure VARCHAR(40),
Name VARCHAR(40),
Active INT)
GO

--Import Data from CSV

BULK 
INSERT Amide_actives_test
FROM 'C:\Amide_actives.csv'
WITH
(
FIELDTERMINATOR = ',',  --CSV field delimiter
ROWTERMINATOR = '\n'   --Use to shift the control to next row
)
GO
--Check the content of the table
SELECT * FROM Amide_actives_test
GO     

将弹出以下错误消息:

Bulk load data conversion error (truncation) for row 1, column 1 (Name).
Msg 4863, Level 16, State 1, Line 10
...repeating the previous 2 lines 10 times....
The OLE DB provider "BULK" for linked server "(null)" reported an error. The provider did not    give any information about the error.
Msg 7330, Level 16, State 2, Line 10
Cannot fetch a row from OLE DB provider "BULK" for linked server "(null)".

显然SQL存在读取#34; Structure VARCHAR(40)"中的第一列的问题。我已经尝试了所有的字符串类型(CHAR,VARCHAR.NCHAR,NVARCHAR,NTEXT,TEXT),但它们都没有。

http://msdn.microsoft.com/en-us/library/ff848814.aspx

解决此问题的一种方法是从DayLight购买另一个自定义的MySQL模块。但是,1。它的成本为2.它不支持SQL

http://www.daylight.com/dayhtml/doc/pgsql/daycart_pg_search.html

我是否知道SQL专家是否有SQL解决方案?谢谢!

1 个答案:

答案 0 :(得分:2)

第一个问题是Structure VARCHAR(40) varchar length小于输入,因此您获得trucation error。尝试增加varchar length并检查