問題タブ [openrowset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2774 参照

sql - SQL Server 2005 を使用した Excel 2007 ファイルのインポート

約 301808 行と 2 列の Excel 2007 ファイルがあります。SSIS を使用してインポートしようとしましたが、2007 Excel を使用できません。次に、次の手順に従って、SQL Server でリンク サーバーを作成することにしました。

  • SQL Server Management Studio で、オブジェクト エクスプローラーの [サーバー オブジェクト] を展開します。
  • [リンク サーバー] を右クリックし、[新しいリンク サーバー] をクリックします。
  • 左側のウィンドウで [全般] ページを選択し、次の手順に従います。
  • 最初のテキスト ボックスに、リンク サーバーの任意の名前を入力します。
  • [その他のデータ ソース] オプションを選択します。
  • [プロバイダー] リストで、[Microsoft Jet 4.0 OLE DB プロバイダー] をクリックします。
  • [製品名] ボックスに、OLE DB データ ソースの名前として「Excel」と入力します。
  • [データ ソース] ボックスに、Excel ファイルの完全なパスとファイル名を入力します。
  • [プロバイダー文字列] ボックスに、Excel 2002、Excel 2000、または Excel 97 - ブックの場合は Excel 8.0 と入力します。
  • [OK] をクリックして、新しいリンク サーバーを作成します。

ここから: http://support.microsoft.com/kb/306397/EN-US

ただし、手順は 2007 ではなく以前の Excel ファイルのみを対象としているため、2007 の接続文字列を調べ、リンク サーバーの設定で Excel 8.0 の代わりに Excel 12.0 を使用しました。

  • プロバイダー: Microsoft Office 12.0 Access データベース エンジン OLE DB
  • プロバイダー製品名: Excel データ ソース: C:\Documents and
  • Settings\UserName\Desktop\Main\FilesIns\MyExcelFile.xlsx プロバイダ
  • 文字列: Excel 12.0
  • 位置:
  • カタログ:

次に、このエラーが発生しました:

リンク サーバー "EXCEL_MY_FILE" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" には、テーブル "Report 1$" が含まれていません。テーブルが存在しないか、現在のユーザーがそのテーブルに対する権限を持っていません。

パーミッションの問題が発生した場合に備えて、セキュリティにアクセスし、 nt authority\system を追加しましたが、それでも上記のエラーが発生しました。

Excel テーブルは「レポート 1」と呼ばれます。

また、sql で openrowset を使用して何が起こったのかを確認したところ、次のようになりました。

SQL Server は、コンポーネント 'Ad Hoc Distributed Queries' の STATEMENT 'OpenRowset/OpenDatasource' へのアクセスをブロックしました。このコンポーネントは、このサーバーのセキュリティ構成の一部としてオフになっているためです。

次に、以下のリンクのコードを試して、openrowset の使用に役立つかどうかを確認しました。

アドホック分散クエリを有効にする方法

そして得た:

リンク サーバー "(null)" の OLE DB プロバイダー "Microsoft.ACE.OLEDB.12.0" から、"FROM 句の構文エラー" というメッセージが返されました。メッセージ 7321、レベル 16、状態 2、行 1 OLE DB プロバイダー「Microsoft.リンク サーバー "(null)" の ACE.OLEDB.12.0"。

したがって、openrowset ステートメントの値が正しいかどうかはわかりません。

SSISを使用せずにこのファイルをSQLテーブルにインポートする方法を本当に探しているだけです-とにかく使用できません。

ありがとう

アンドリュー

0 投票する
4 に答える
20710 参照

sql-server-2008 - Openrowset SQL SERVER 2008 への更新

ローカル クエリからリモート テーブルに対して UPDATE アクションを実行しようとしています。明らかに、OPENROWSET を使用する必要があることはわかっていますが、その方法がわかりません。

次のような方法で OPENROWSET に挿入できることを知っています。

または、次のような選択を行うことができます:

しかし、私は更新の解決策を思いつきませんでした。それは可能ですか?

前もって感謝します!

0 投票する
1 に答える
4404 参照

sql - Excel での SQL OPENROWSET

Excel スプレッドシートから SQL にデータを読み取ろうとしていますが、スプレッドシートの特定の列/行 (この例では数値) にデータがあるにもかかわらず、何らかの理由で一部のフィールドが NULL として表示されます。

テキストがある他のすべての列/行は正常に表示されます。

これは私が使用しているクエリです

SQL Server Management Studio 2005 を使用してクエリを実行しています。

なぜこれが起こっているのかについてのアイデア/提案はありますか? ありがとう。

0 投票する
2 に答える
11942 参照

sql-server - FoxPro DBF ファイルを SQL Server にインポートしようとしています

タイトルが示すように、openrowset を使用して FoxPro dbf ファイルを SQL サーバーにインポートしようとしています。最初に、DBF を xls ファイルにエクスポートし、インポート/エクスポート ウィザードを使用してインポートしようとしました。これは正常に機能しますが、非常に長い文字列を保持するフィールドが 1 つあります。この文字列は、dbf から xls へのエクスポート中に 4096 文字で切り捨てられます。

openrowset を使用してこれを行う方法が記載された古い投稿を見つけました。

最初の答えを試すと:

エラーが発生します:

2番目の答えを試すと:

エラーが発生します:

OLE*.dll ファイルを手動で regsvr32 に登録しようとしましたが、一部しか機能しませんでした。ole32、oleacc、oleaut32、および oleprn では、成功メッセージが表示されました。oleacchooks、oleaccrc、oledlg、および oleres で、次のエラーが発生しました。

いくつかの 調査の後、コンポーネントをインストールしようとしましたが、FoxPro の msi ファイル (ここにあります) をインストールしようとしたときに、次のエラーが発生しました。

だから、私はここで公式に迷っています。openrowset を機能させる方法、または dbf ファイルをインポートする他の方法について提案がある人はいますか?

0 投票する
3 に答える
766 参照

mysql - 画像を SQL テーブルに挿入中にエラーが発生しました

以下のクエリを使用して、「png」画像をSQLテーブルフィールド(blobタイプのbarchartと呼ばれる)に挿入しようとしています。

INSERT INTO disease_symptom_soc(barchart) Values ((SELECT BULKColumn FROM OPENROWSET(BULK N'/home/barchartC2936861.png', SINGLE_BLOB) AS Image)) where disease_id='C2936861';

以下のエラーが表示されます。原因は何ですか?

エラー 1064 (42000): SQL 構文にエラーがあります。1 行目の '(BULK N'/home/barchart' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

0 投票する
1 に答える
3233 参照

sql - Microsoft.ACE.OLEDB.12.0 クエリを実行できません

私はこのSQLコードを持っています。Excel ファイルの特定のセルを更新します。

このコードは 32 ビットでは正常に実行されますが、64 ビット サーバー (MSSQL Server 2012) では失敗します。64 ビットで次のエラーが発生します。

32ビットPCで作成したfile.xlsエクセルファイルです。

誰かがこの問題で私を助けてくれますか? 私はネットを検索してきましたが、実際には解決策やそれを解決するためのガイドさえも得られませんでした。この質問が既に投稿され、回答されている場合は、正確なリンクを投稿してください。

ちなみに、ACE プロバイダーと必要な設定はすべてインストール済みです。実際、このコードは正常に機能しますが、UPDATE ステートメントでは機能しません。

ありがとう!