我正在尝试使用openrowset将数据插入到db2表中。我有一个csv文件位于我尝试使用openrowset读取的特定位置。以下是代码:
using (OdbcConnection connection =
new OdbcConnection("DSN=DBHUBD"))
{
connection.Open();
using (OdbcCommand cmd = new OdbcCommand("insert into trgisl.LCR_HQLA_WEIGHT select * from OPENROWSET ( 'MSDAQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; " +
"ColNameHeader = TRUE; Format = CSVDelimited; ''','select * from " + csvPath + "')", connection))
{
cmd.ExecuteNonQuery();
connection.Close();
}
}
然而,当我尝试调试时,我得到以下错误:
错误[42601] [IBM] [CLI驱动程序] [DB2 / AIX64] SQL0104N意外 令牌" OPENROWSET"发现在" EIGHT select * from"。 预期的代币可能包括:" UNNEST"。 SQLSTATE = 42601
我最初的想法是一些库/参考问题。还将microsoft excel 14.0对象库添加到项目的引用中,但仍然得到相同的错误。我想知道openrowset是否还有其他语法
答案 0 :(得分:0)
Db2拒绝你的语法,因为Db2无法识别opwnrowset令牌 - 它不是Db2的有效语法。
如果您的目标是使用c#将CSV文件中的批量数据添加到Db2表中,请尝试使用IBM Data Server Provider为.net提供的Db2BulkCopy类。
参见示例here。