使用openrowset时插入数据时出错

时间:2018-04-27 20:09:26

标签: c# asp.net visual-studio db2

我正在尝试使用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是否还有其他语法

1 个答案:

答案 0 :(得分:0)

Db2拒绝你的语法,因为Db2无法识别opwnrowset令牌 - 它不是Db2的有效语法。

如果您的目标是使用c#将CSV文件中的批量数据添加到Db2表中,请尝试使用IBM Data Server Provider为.net提供的Db2BulkCopy类。

参见示例here