OPENROWSET not working unless file is open












0















I've been using OPENROWSET successfully for quite some time now, but now I've run into a problem I'm unable to solve. I'm running SQL Server 2017 Express.



I'm running the following query:



SET @SQL = '
INSERT INTO MyTable SELECT *
FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0; HDR=YES; FIRSTROW=1; FORMAT=CSV Database='+@filePath+''',
''SELECT * FROM [MyFile_'+@MonthNo+@YearNo+'$A1:I5000]'')'

exec (@SQL)


The error message I get is:




(0 rows affected)
OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "External table is not in the expected format.".
Msg 7303, Level 16, State 1, Line 19
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".




The file is a CSV (semi colon delimited) saved locally on the same machine as SQLServer is running.
The file itself is downloaded from a FTP share.



Now the tricky part - if I open the file in excel, and keep it open, and then run the query above, the import works just fine. Usually my problem is the other way around - if I have a file open I'm not able to import it, but that is not the case here.



Please note that I have several other files that I'm able to read in successfully using the same query.



Any help would be appreciated.










share|improve this question



























    0















    I've been using OPENROWSET successfully for quite some time now, but now I've run into a problem I'm unable to solve. I'm running SQL Server 2017 Express.



    I'm running the following query:



    SET @SQL = '
    INSERT INTO MyTable SELECT *
    FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
    ''Excel 12.0; HDR=YES; FIRSTROW=1; FORMAT=CSV Database='+@filePath+''',
    ''SELECT * FROM [MyFile_'+@MonthNo+@YearNo+'$A1:I5000]'')'

    exec (@SQL)


    The error message I get is:




    (0 rows affected)
    OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "External table is not in the expected format.".
    Msg 7303, Level 16, State 1, Line 19
    Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".




    The file is a CSV (semi colon delimited) saved locally on the same machine as SQLServer is running.
    The file itself is downloaded from a FTP share.



    Now the tricky part - if I open the file in excel, and keep it open, and then run the query above, the import works just fine. Usually my problem is the other way around - if I have a file open I'm not able to import it, but that is not the case here.



    Please note that I have several other files that I'm able to read in successfully using the same query.



    Any help would be appreciated.










    share|improve this question

























      0












      0








      0








      I've been using OPENROWSET successfully for quite some time now, but now I've run into a problem I'm unable to solve. I'm running SQL Server 2017 Express.



      I'm running the following query:



      SET @SQL = '
      INSERT INTO MyTable SELECT *
      FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
      ''Excel 12.0; HDR=YES; FIRSTROW=1; FORMAT=CSV Database='+@filePath+''',
      ''SELECT * FROM [MyFile_'+@MonthNo+@YearNo+'$A1:I5000]'')'

      exec (@SQL)


      The error message I get is:




      (0 rows affected)
      OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "External table is not in the expected format.".
      Msg 7303, Level 16, State 1, Line 19
      Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".




      The file is a CSV (semi colon delimited) saved locally on the same machine as SQLServer is running.
      The file itself is downloaded from a FTP share.



      Now the tricky part - if I open the file in excel, and keep it open, and then run the query above, the import works just fine. Usually my problem is the other way around - if I have a file open I'm not able to import it, but that is not the case here.



      Please note that I have several other files that I'm able to read in successfully using the same query.



      Any help would be appreciated.










      share|improve this question














      I've been using OPENROWSET successfully for quite some time now, but now I've run into a problem I'm unable to solve. I'm running SQL Server 2017 Express.



      I'm running the following query:



      SET @SQL = '
      INSERT INTO MyTable SELECT *
      FROM OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',
      ''Excel 12.0; HDR=YES; FIRSTROW=1; FORMAT=CSV Database='+@filePath+''',
      ''SELECT * FROM [MyFile_'+@MonthNo+@YearNo+'$A1:I5000]'')'

      exec (@SQL)


      The error message I get is:




      (0 rows affected)
      OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" returned message "External table is not in the expected format.".
      Msg 7303, Level 16, State 1, Line 19
      Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".




      The file is a CSV (semi colon delimited) saved locally on the same machine as SQLServer is running.
      The file itself is downloaded from a FTP share.



      Now the tricky part - if I open the file in excel, and keep it open, and then run the query above, the import works just fine. Usually my problem is the other way around - if I have a file open I'm not able to import it, but that is not the case here.



      Please note that I have several other files that I'm able to read in successfully using the same query.



      Any help would be appreciated.







      sql sql-server openrowset






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 10:41









      JectsonJectson

      4429




      4429
























          0






          active

          oldest

          votes











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391203%2fopenrowset-not-working-unless-file-is-open%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391203%2fopenrowset-not-working-unless-file-is-open%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          Npm cannot find a required file even through it is in the searched directory