【问题标题】:Import csv data from a secure url into a table将 csv 数据从安全 url 导入到表中
【发布时间】:2013-06-26 04:33:48
【问题描述】:

我可以访问一个系统,如果您在浏览器中输入一个 url,它会自动下载一个 .csv 文件。网址格式如下

https://secure.company.com/csv.cgi?user=username;password=password

我想做的是以某种方式让 MS SQL Server 2012 完成所有下载并自动导入表中。

这可能吗? 作为一个菜鸟猜测它会通过存储过程完成吗? 如果是这样,如何编写这样的代码?

【问题讨论】:

    标签: sql sql-server stored-procedures sql-server-2012


    【解决方案1】:

    如何使用wget 之类的工具下载文件,然后查看blog post 了解如何将 CSV 文件导入数据库。

    【讨论】:

    • 您是否介意详细说明您的wget 想法。我以前从未使用过。
    【解决方案2】:

    尽管可能有一种方法可以使用 SQL Server 发送 http 请求,但使用 SQL 查询,我强烈建议您从 C# 中执行此操作。您可以为此开发一个小型应用程序或使用 CLR 存储过程。

    只需更新 YourTable 和下载路径就可以了。

    protected const string FILE_NAME = @"C:\tablevalues.csv";
    
    protected const string SQL_INSERT = "BULK INSERT YourTable FROM {0} WITH (         FIELDTERMINATOR = ',', ROWTERMINATOR = '\n')";
    
    protected void DownloadFile()
    {
    WebClient webClient = new WebClient();
    webClient.DownloadFile("https://secure.company.com/csv.cgi?user=username;password=password", FILE_NAME);
    
    SqlConnection sqlConnection = new SqlConnection("connection string");
    SqlCommand sqlCommand = new SqlCommand(string.Format(SQL_INSERT, FILE_NAME), sqlConnection);
    
    sqlConnection.Open();
    sqlCommand.ExecuteNonQuery();
    sqlConnection.Close();
    sqlConnection.Dispose();
    

    }

    【讨论】:

    • 不幸的是,我无法访问 Visual Studio。我将如何使用 clr 存储过程来做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 2015-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 2022-08-14
    • 1970-01-01
    • 2014-03-12
    相关资源
    最近更新 更多