問題タブ [xml-import]
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.
c# - SQLXMLBulkLoad (トランザクション モード) の共有の問題を解決またはスキップする方法
xml ファイルを Microsoft SQL Server データベースにインポートする必要があります。.xsd
また、インポートする xml ファイルのマッピング情報を含むxml スキーマ ファイル ( ) があります。xml ファイルの各有効なデータ行は、複数の列を持つデータベース テーブルの行にインポートする必要があります。
もともと私はSQLXMLBulkLoad
(非トランザクション モード - データベース接続文字列を指定) を使用してジョブを実行していましたが、問題なく動作しましたが、使用する同じデータベース接続でストアド プロシージャを実行する必要があるという新しい要件がありますSQLXMLBulkLoad
。このストアド プロシージャの目的は、複数のユーザーが同時に xml ファイルをインポートする可能性があるため、現在のユーザーの特定の ID で接続をバインドすることです。そのため、代わりにトランザクション モードを使用する必要があり (- の接続文字列ではなくデータベース接続を指定SQLXMLBulkLoad
)、リモート環境でよく知られている共有の問題が発生します。xml ファイルがローカルにあり、db サーバーがリモートにある場合、動作させるために共有フォルダーを作成する必要がありますSQLXMLBulkLoad
。これは悪いことですが、実行できます。
問題は、共有フォルダーがクライアントに受け入れられないことです。そのため、共有の問題なしで新しい要件を満たすことができるより良いソリューションが必要です。
しばらく Google で検索したところ、うまくいく可能性のある解決策が 1 つ見つかりましたが、スキーマ ファイル ( ) には多くのマッピング情報が含まれているためSqlBulkCopy
、このファイルの解析に問題があります。.xsd
xml-db:table
任意のアイデアをいただければ幸いです。