0

Excelの動的URLを「OPENROWSET」に渡したい。

注-Excelファイルの返された結果をカーソルに渡します。ファイルパスを「@excelpath」に渡したいのですが、いろいろな方法を試しましたが、構文エラーが発生します。

 ALTER procedure [dbo].[import_excel]
(
    @excelpath as nvarchar(max)
)
as      
begin
  set nocount on 
  DECLARE insert_cursor CURSOR FOR 
  select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
    'Excel 12.0;Database=C:\memberdata.xlsx', [Sheet1$])
  OPEN insert_cursor;
  FETCH NEXT FROM insert_cursor
      INTO @id_number, @memberName

  WHILE @@FETCH_STATUS = 0
  BEGIN
  -- body of cursor
      FETCH NEXT FROM insert_cursor
      INTO @id_number, @memberName
  END
  CLOSE insert_cursor;
  DEALLOCATE insert_cursor;
END
4

1 に答える 1

3

この質問に示すように、動的SQLを使用してクエリを作成する必要があります。クエリのデータを永続テーブルに挿入してから、永続テーブルにカーソルを合わせるのがおそらく最も簡単です。このようにして、動的に操作する必要のあるSQLの量を最小限に抑えます。

于 2012-07-27T13:00:03.563 に答える