問題タブ [osql]

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 に答える
568 参照

sql-server-2005 - OSQL コマンドを使用するときにバッチでエラー名を取得するにはどうすればよいですか?

SQLコマンドを実行するバッチファイルを作成しました。

コードを見てみましょう

コードの上記の部分は、常に 0 と を返しますSorry, could not complete your request!。どういう意味 ?

何が問題なのかを正確に確認するために、コンソールにエラーを表示するように設定する方法は?

MSDNに応じて配置-m-1および削除しましたが、コンソールに表示されません。-h-1

ありがとうございました。

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

sql-server-2008 - osql.exe で .sql スクリプトを実行して .csv ファイルを生成する

フォルダーにスクリプト ファイルがあります。SSIS を使用してこのスクリプトを実行し、CSV を生成するため、SSMS で開かずに TSQL を使用してこのスクリプトを実行したいと考えています。

OSQL を使用してプロセス実行タスクを使用してこれを達成しましたが、探している正確な結果が得られません。csvにスペースを生成しています。CSV オプションとして右クリックでエクスポートした 17 MB のファイルは、OSQL コードを使用して実行すると 1 GB になりました。使用した OSQL は次のとおりです。

-E -S CCCMSDSQL20,1819 -d SHARE_SCRUB -q "SET NOCOUNT ON" -i "C:\Scripts\.SQL" -o "C:\Scripts\.csv" -n -h-1 -s"," -w 700

私は同じことを達成できる TSQL スクリプトを好むので、それを SQL 実行タスクで使用して結果を得ることができます。

編集:フォルダー内の複数の .sql ファイルから複数の csv を生成する作業を行っています。現在、for each ループ コンテナーを使用してプロセス タスクを実行しています。プロセス実行タスクを変更して SQL タスクを実行し、このスクリプトを使用したい複数のファイルを生成します。

ループと CSV ファイルの生成を 1 つのスクリプトで実行できる TSQL コードを記述できれば、パッケージを使用せずに使用できます。

お時間をいただきありがとうございます。

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

sql-server - SQLクエリはSSMS内で機能しますが、cmdファイルでosqlコマンドを使用する場合は機能しません

特定のクエリをSSMSの外部で機能させるのに問題があります。クエリはすべてのユーザー定義データ型を収集し、IFEXISTSステートメントとCREATETYPEコマンドを作成して、すべてのユーザー定義データ型を簡単に転送できるようにします。そのためのクエリは次のとおりです(私が書いたものではありませんが、https://stackoverflow.com/a/12761027/865893にあります)

これはSSMS内の魅力のように機能しますが、毎回SSMS内に入り、これを自分でファイルにエクスポートする必要はありません。次のようにバッチファイルでosqlコマンドを使用してクエリを実行すると。

ただし、これにより次の出力が得られます。

手がかりは素晴らしいでしょう。私はしばらくの間グーグルを見回しました、そしてこれを何を変えるべきか/どのように修正するべきか理解することができません。それが言うように引用符を削除または閉じると、物事が壊れます。ありがとう。

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

sql - NSISExecWaitとOSQLアプリケーション

私はいくつかのMSSQLデータベース操作を実行する必要があるインストーラーを書いています。これらの操作は.cmdファイルにあり、MSSQLServer2000のOSQL.exeを介して実行されます。

今、私の問題が発生します。バッチファイルをダブルクリックすると、OKが実行されます。ただし、インストーラーでExecWaitを介して実行した場合(またはExec、またはExecShellをすべて試しても違いはありません)、Windowsはコマンドosqlが見つからないと言います...SetOutPathを介して設定された現在の作業ディレクトリはまったく同じディレクトリです.cmdファイルはにあります。

私はまた、これと同じくらいケースを単純化しようとしました:

私のNSISソースには次のようなものがあります。

私の問題はここでも起こります。ダブルクリックするか、コマンドラインから.cmdを呼び出すと、正常に実行されますが、NSISのExecは、何らかの不思議な理由で、osqlを見つけられないようです。なぜそれが起こり得るのか誰かが知っていますか?

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

tsql - sqlcmdで他のフォーマットを行わずに結果をtxtファイルに保存します

このコマンドを実行する
sqlcmd -S server -U sa -P xxxxxxx -i d:clients.sql -o D:\clients.txt
と、ファイル内でx行が影響を受け、「1> 2> 3> 4> 5> 6> 7> 8>」やその他の多くのスペース
が、フォーマットなしで表示されるだけではありません。
SQLファイルにいくつかの選択があります。

少し早いですがお礼を。

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

database - OSQL 不適切な構文 - 文字エンコード - Powershell スクリプトのヘルプが必要

そのため、ビルド プロセスの一部として osql を使用してストアド プロシージャを実行します。ビルド パックの一部としてアプリケーションと共に公開される sp フォルダーを含むプロジェクトを使用します。

Visual Studio を使用してこのプロジェクト構造を作成し、プロシージャで実行する SQL スクリプトを作成しました。

Visual Studio はファイルを UTF8 形式 (既定) で保存しました。osql をスクリプトで実行すると、すべてのスクリプトで 1 行目に構文エラーが発生するというエラーが表示されました。

むしろ不可解。

ともかく; この問題を解決するには、SQL スクリプトを Unicode コードページ 1200 で保存できます ([ファイル] -> [高度な保存オプション])。

et voila - 問題は解決しました

今、私はさらに大きな問題を抱えています。開いてエンコーディングを変更し、新しいエンコーディングで保存する必要がある 200 以上の proc スクリプトがあります。

フォルダ内のすべてのファイルのエンコーディングを Unicode Codepage 1200 に変更する簡単なスクリプトを作成できる PowerShell の達人はいますか? 時間を節約しながら、私に好意を持っているでしょう。

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

batch-file - FOR ループでデッドロックが発生した場合は、OSQL コマンドを再試行してください

そこで、OSQL クエリを利用する最初のバッチ スクリプトに取り組んでいます。これが私の現在のコードです:

アイデアは、names.txt に実行する sql クエリのリストがあり、出力を同じ名前のファイルに吐き出し、後でマスター出力に連結できるというものです。

私が問題に直面しているのは、エラーチェック、特にデッドロックです。デッドロックが発生したときに私がやりたいことは、失敗したクエリを再実行してから、リストを下に進むこと です

私の考えでは、エラーレベルのチェックと goto を使えば、私がやりたいことはできるだろうということでした。代わりに、:RESTARTER に戻ると、%%G の値が失われ、永続的なエラー ループが発生します。

リスタータの外で別の変数を %%G の値に設定しようとしました...これが機能している間、クエリが正常に実行されると、元の FOR ループから抜け出して停止します。

それで、私の質問は、最後に失敗したコマンドを再試行し、names.txt の最後に到達するまで FOR ループを続行するようにスクリプトに指示するにはどうすればよいかということです。

編集:さて、実際の osql コマンドを別のバッチ ファイルに入れ、ループからそのバッチを呼び出して %%G をパラメーターとして渡すことで、機能させることができました。ただし、別のスクリプトを使用せずにこれを行う方法があるかどうかを知りたいと思っています。