問題タブ [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 投票する
3 に答える
7999 参照

javascript - OPENROWSET を使用して SQL Server 経由で Oracle DB にアクセスする

クライアント側の Javascript で OPENROWSET を使用して SQL Server 経由で大規模な Oracle データベースにアクセスしようとしていますが、うまくいきません。詳細は次のとおりです。

  • OPENROWSET を使用して Oracle データベースにアクセスする SQL Server ビューは完全に機能するため、有効な接続文字列パラメーターがあることがわかります。ただし、新しい要件は、クライアント側の選択に依存する非常に動的な Oracle クエリに対するものであり、動的 (またはパラメーター化された) Oracle クエリを SQL Server ビューまたはストアド プロシージャから動作させることはできませんでした。
  • SQL Server データベースへのクライアント側アクセスは、動的およびパラメーター化されたクエリで完全に機能します。
  • クライアントが Oracle クライアント ソフトウェアを持っているとは思えません。したがって、Oracle データベースへのアクセスは、ビュー、ストアド プロシージャ、または OPENROWSET を使用した動的クエリを使用して、SQL Server データベース経由で行う必要があります。
  • SQL Server データベースは共有サーバー上にあるため、グローバルにリンクされたデータベースを使用することはできません。

私の考えは、独自のバージョンのパラメーター化された Oracle クエリを取得し、パラメーターを置換して、クエリを OPENROWSET でラップし、それを SQL Server で実行して、結果のレコードセットを返す関数を定義することでした。サンプルコードは次のとおりです。

私が得ているSQLエラーは、私にはAd hoc access to OLE DB provider 'MSDAORA' has been denied. You must access this provider through a linked server.意味がありません。このエラーに関する Microsoft の説明は、レジストリ設定に関連しています ( DisallowAdhocAccess)。これは私の PC では正しく設定されていますが、これはクライアント PC ではなく DB サーバーに関連していることは確かです。上記のビューが機能するため、設定が正しいと期待できます。

私が試した 1 つの代替手段は、Open ステートメントで囲んでいる EXEC を削除することです。

しかし、これは同じエラーを生成します。

また、OPENROWSET をストアド プロシージャに入れてみました。これは、SQL Server Management Studio 内から実行すると完全に機能しますが、ストアド プロシージャが Javascript から呼び出されると同じエラー メッセージで失敗します。

私がやろうとしていることは可能ですか?もしそうなら、私のコードを修正する方法をお勧めできますか? それとも、まったく異なるアプローチが必要ですか?

ヒントや関連情報は大歓迎です。前もって感謝します。

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

openrowset - SQL クエリで XMLA ステートメントを実行していますか?

分析 DB に新しいロールを作成しようとしています。

私は複数の組み合わせをテストしました:
Openrowset => で単純な MDX クエリを実行すると動作します。
実行すると動作します。
openrowset=> ERROR を使用して SQl リレーショナル DB から新しい SSAS ロールを作成しようとすると。

ここに私が試しているコードがあります

私が受け取るエラーは次のとおりです。

助けてください:)
よろしく、エリー

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

sql-server - openrowset を使用して Excel ファイルを一時テーブルに読み込みます。そのテーブルを参照するにはどうすればよいですか?

Excelファイルを一時テーブルに読み込み、そのテーブルのデータの一部をマッサージし、そのテーブルから選択した行を永続テーブルに挿入するストアドプロシージャを作成しようとしています.

したがって、次のように始まります。

それくらい効きそうです。

ただし、次のようなことを試してみると:

エラーが発生します:

無効なオブジェクト名 '#mytemptable'

#mytemptable が認識されないのはなぜですか? 残りのストアド プロシージャから #mytemptable にアクセスできるようにする方法はありますか?

よろしくお願いします!

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

sql - OPENROWSETを使用したSQLServerのExcelへのエクスポート

私は次のステートメントでExcelに正常にエクスポートしています:

テンプレートが書き込まれないように、Excelシートの新しい名前を指定してこのテンプレートを使用する標準的な方法はありますか、それとも回避策を考え出す必要がありますか?

人々の経験でこれを行うための最良の方法は何ですか?

0 投票する
5 に答える
6149 参照

tsql - TSQLのOpenRowSetコマンドがNULLを返しています

しばらく調査を続けており、レンガの壁にぶつかり続けています。OpenRowsetコマンドを使用してxlsファイルから一時テーブルにインポートしています。特定の列に範囲値があるものをインポートしようとしているときに問題が発生しましたが、最も一般的なのは次のとおりです。長い数値、つまり15598として構造化された列と、文字列として構造化された一部の列、つまり15598-E。

これで、openrowsetは文字列バージョンを問題なく読み取っていますが、数値バージョンをNULLとして報告しています。openrowsetにその問題があり、作成者がクエリ文字列に「HDR = YES; IMEX = 1」を実装することについて話していることを読んだ(http://www.sqldts.com/254.aspx )が、それはまったく機能していません。

皆さん、これに遭遇したことはありますか?

さらにいくつかの情報も。JETエンジン(Microsoft.Jet.OLEDB.4.0)ではこれを実行できない可能性があるため、クエリは次のようになります。

0 投票する
6 に答える
100833 参照

sql-server-2005 - リンクサーバー"(null)"のOLEDBプロバイダー"MSDASQL"のデータソースオブジェクトを初期化できません

興味深い問題があります。Sql2005のOpenRowsetを介してサーバー上のExcelファイルから読み取っています。クエリを何回も問題なく実行しました。簡単な会議に出かけたところ、突然「リンクサーバー「(null)」のOLEDBプロバイダー「MSDASQL」のデータソースオブジェクトを初期化できません」というエラーが表示されます。

サーバーでファイルが使用されていないことを確認し、ファイルを削除してサーバーに再コピーしましたが、それでも同じエラーが発生します。

更新:これは、異なるopenrowsetからの2つの選択に参加した場合にのみ発生するようです。クエリを個別に実行しても、正常に機能します。私は以前に問題なく参加しました。アイデア?

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

sql - 別の列の値を指定しながら、INSERT ステートメントで OPENROWSET を使用しますか?

OPENROWSET(BULK ...) を使用して、ファイルの内容をテーブルに挿入しています。問題は、同じ INSERT ステートメントで別の列の値も指定する必要があることです。

私はこのようなものを持っています:

ここで別の列の値も指定する方法があると確信していますが、その方法はわかりません。

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

sql-server - SQLインポートでのExcelのインポートは「NULL」行をインポートします

異なる形式のワークブックをデータベース テーブルにインポートし、作業を行ってからテーブルを削除するストアド プロシージャがあります。

これが入力クエリです。

一部のスプレッドシートでは、下部に null 行が作成されるようです。

null 行をインポートして無視するにはどうすればよいですか?

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

sql-server-2005 - OLE DB プロバイダ「MSDASQL」が登録されていません

.csv ファイルからデータを抽出したいと思います。次のように表示されているため、64 ビット マシンでは OpenRowSet を使用できません。

また、32 ビットのものと同じように、SQL Server 2005 SSMS のLinked Servers -> ProvidersセクションにMSDASQL エントリはありません。

誰かが.csvファイルからデータを抽出するための同等の方法を提案できますか?