問題タブ [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.
sql-server - Excelシートの電話番号をvarcharではなく10進数形式に変換するOPENROWSET
Excel シートのフィールドの 1 つは電話番号で、openrowset を使用して一括インポートし、それを varchar(50) フィールドに挿入すると、10 進数形式に変換されます。
これは私がやっていることです:
電話番号 3234406751 (Excel ファイル内) は 3.23441e+009 (TmpDataFileCC_ftb 内) に変換されます
キャストと変換機能をいくつか試しましたが、何も機能しないようです。誰かがそれを解決するために何ができるか教えてもらえますか?
sql - Excel データを SQL Server にインポートする
Excel ファイルのデータを SQL Server に挿入したい.次の SQL ステートメントを使用しました。
しかし、私は次のエラーが発生しています -
メッセージ 7403、レベル 16、状態 1、行 1
OLE DB プロバイダー "Microsoft.Jet.OLEDB.4.0" が登録されていません。
tsql - T-SQL: 文字列連結の問題
GreenLine1.mp3、GreenLine2.mp3 などの名前のオーディオ ファイルのセットがあります。それらを BLOB としてテーブルに書き込みます (MS SQL Server'08 を使用します)。SQL 要求は次のとおりです。
エラーがあります:「+」付近の構文が正しくありません。「,」または「)」が必要です。
書いてみたら
'C:\Users\Ilya\folder\GreenLine' + CAST(@num AS VARCHAR) + '.mp3'
変数に入れて BULK の後に配置すると、@variable の近くに Incorrect syntax、expected STRING、または TEXT_LEX が表示されます
sql - ファイルを SQL Server 2008 データベースにインポートする
あるデータベースから別のデータベースに大量のファイルをインポートしようとしています。元のデータベースはファイル名をデータベース テーブルに格納し、実際のファイルはディスク上のどこかに格納していました。
新しいデータベースは、filestream を使用してファイルを格納します。
以前にOPENROWSETを使用して新しいデータベースにファイルをインポートしましたが、その場合は手動でフルパスを指定しましたが、うまくいきました。
この場合、複数のファイルがあるため、ディスク上のディレクトリの場所と古いDBのファイル名を組み合わせてパスを動的に構築できると考えました。
ただし、結局のところ、OPENROWSET では文字列を連結できません。動的 SQL を使用する方法があることがわかりました (http://stackoverflow.com/questions/6621579/t-sql-issue-with-string-concat)。
ただし、古いデータベース テーブルの情報を OPENROWSET と組み合わせて、新しいデータベースにファイルを挿入できるようにする方法がわかりません。
私の現在のアイデアは次のようなものです。
このようにして、ID、ファイル名、フル パスを取得できます。しかし、これら 3 つの項目をバイナリ データと一緒に新しい DB に挿入するにはどうすればよいでしょうか? 誰かが助けてくれることを願っています
sql-server - SQL Server OpenRowSet 関数を使用して csv ファイルをアップロードする
OpenRowset 関数を使用して、複数のファイル (file1、file2、file3...) を SQL サーバー DB のテーブル (Table1、table2、table3...) にアップロードする必要があります。すべてのファイルは C:\download に保持されます。次のクエリを使用すると正常に動作します。
問題は、ファイル名とテーブル名をパラメーターとして渡す方法です。
トニーさん、ご回答ありがとうございます。次のようにSQLをストアドプロシージャに入れました。しかし、元のハードコードされたファイルやテーブル名よりもはるかに遅くなります。実行を高速化するための提案はありません。
openrowset - openrowset microsoft.ace.olebd.12.0 を使用した非 sa アドホック クエリ
ヘルプ!
非 sa アカウントで openrowset Microsoft.ACE.OLEDB.12.0 を使用してアドホック クエリを使用する方法について、誰かが解決策を示していただければ幸いです。クラウド全体でこれを探すのに苦労しています。
ありがとう、
sql-server - OpenRowSetを使用して.CSVファイルをインポートするときに、科学的記数法を浮動小数点数に変換します
openrowsetを使用してcsvファイルをSQLServerにインポートしています。csvファイルの列の1つに、科学的記数法(1.08E + 05)の数値と、挿入されるテーブルの列が含まれています
デフォルトでは、値を1としてインポートし、.08E+05を無視します。
cast()とconvert()を使用して、クエリの実行時に値を直接変換し、テーブルのデータ型を文字列として設定してインポートしようとしました。これらのメソッドはすべて、.08E+05が無視されるという同じ動作をします。
csvファイル自体を変更せずに.08E+05なしで値を1ではなく108000としてインポートする方法はありますか?
データ型をvarcharとして設定し、csvファイルを読み取ると、次のコードでも同じ効果があるように見えます。
CSVファイルのすべての値に科学的記数法があり、それがない値があるわけではありません。たとえば、81000は問題なく検出されます。
sql - SP に # 個の一時テーブルが含まれている場合、OPENROWSET を使用して SP の結果を動的に取得する
私のシナリオ
私は、サーバー全体のさまざまなデータベースのさまざまなストアド プロシージャからの多くの詳細を含むデータベースに取り組んでいます。今収集しようとしている情報は、「SP は何を出力するか」です。
検索すると、答えは OPENROWSET にあることがわかりました。私の最初のテストは成功し、すべてが素晴らしく見えました。ただし、ライブ SP でテストしたところ、1 つの大きな問題に遭遇しました。一時 (#) テーブルではうまく機能しません。
例えば:
このSPを取るとしたら:
次のコードを使用して、一時 (##) テーブルに出力を簡単に挿入し、tempdb の sysobjects をクエリして、列とそのデータ型のリストを生成できます。
すごい!ただし、SP が代わりにこれだった場合:
以前と同じOPENROWSET
コードを実行すると、次のエラーが表示されます。
オブジェクト "SET FMTONLY OFF exec DatabaseName.dbo.zzTempSP @A=1,@B=2" を処理できません。リンク サーバー "(null)" の OLE DB プロバイダー "SQLNCLI10" は、オブジェクトに列がないか、現在のユーザーがそのオブジェクトに対するアクセス許可を持っていないことを示しています。
OPENROWSET コードを (動的なものを削除して) 切り詰めると、次のようになります。
次の (より便利な) エラーが表示されます。
オブジェクト名 '#T' が無効です。
ここで壁にぶち当たりました。私の検索では解決策がないように見えますが、まだあきらめることはできませんでした.
そして、私は導かれます..
あなたへの私の質問
このエラーを回避する方法を知っている人はいますか? または、代替ソリューションがある可能性がありますか?
このプロセスは頻繁に実行されるわけではないので、ソリューションの効率についてあまり心配する必要はありません。
任意の入力をいただければ幸いです。
ありがとう、ゾック
PS: フォーマットについて申し訳ありません。言語タグがよくわかりませんでした。
oracle - SQL 2008 OraOLEDB.Oracle プロバイダーが「同時 SESSIONS_PER_USER 制限を超えました」を返す
標準ユーザー (適切なアクセス権を持つ) として実行すると、タイトルに表示されているエラーを返す SQL ジョブがあります。ただし、ジョブを「sa」として実行するように変更すると、問題なく動作します。OraOLEDB.Oracle プロバイダーに接続するために、同じパラメーターが OPENROWSET 関数に渡されています (同じ Oracle ID/PW を使用してログインしています)。リンクされた Oracle サーバーではありません。それはアドホックです。
誰もこれまでにこのようなものを見たことがありますか?
Oracle 11g、SQL 2008 R1 の実行