質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.85%

  • Java

    12821questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • SQL

    2165questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

環境変数 NOCOUNT OFF; が定義されていません

受付中

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 105

pg_ri

score 2

DBからCSV形式でデータを出力するバッチを作成しております。
実行し、出力したデータの件数をログファイルに記載するようにしたく、

Rem SQL実行
echo バッチ処理を開始します >> %LOG%
echo 開始時刻:%DATE%%TIME% >> %LOG%
echo %UID%/%PASS%@%SID% >> %LOG%
sqlplus -s %UID%/%PASS%@%SID% @%SQLFILE% %LISTFILE%
SET NOCOUNT OFF;
rem type C:\BAT\\XXXX.csv | find /c /v "">> %LOG%
echo バッチを正常終了します >> %LOG%

上記の.batを実行したところ、

「環境変数 NOCOUNT OFF; が定義されていません」

というメッセージが表示されました。

環境変数のPathにNOCOUNT OFF;を追加したり、
SET NOCOUNTを追加したりしてみましたが、
同じ結果でした。

「環境変数に定義する」とはどのような設定が必要でしょうか。

また、
1.SET NOCOUNT よりも適している書き方
2.環境変数について理解が不足しているため、これを機に覚えておくべきこと
があればご教授お願い致します。

~追記~

Rem SQL実行
echo バッチ処理を開始します >> %LOG%
echo 開始時刻:%DATE%%TIME% >> %LOG%
echo %UID%/%PASS%@%SID% >> %LOG%
sqlplus -s %UID%/%PASS%@%SID% @%SQLFILE% %LISTFILE%
SET NOCOUNT = OFF;
echo バッチを正常終了します >> %LOG%

一旦、SET NOCOUNT = OFF; の記述に変更したところ、
「環境変数 NOCOUNT OFF; が定義されていません」は出なくなりました。
しかし、まだログに件数が出ているわけではないので、
継続して試行錯誤してみます。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m6u

    2018/05/28 18:06 編集

    javaは関係なさそう、もしかしてWindowsでのコマンド・プロンプトのバッチファイルですか?

    キャンセル

  • asahina1979

    2018/05/29 08:32

    なんだろう?ORACLEでSQLSERVER向けの環境変数を使いたい?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2018/05/29 18:15

    sqlplus コマンドが件数出力するのであれば「sqlplus -s %UID%/%PASS%@%SID% @%SQLFILE% %LISTFILE% >>%LOG%」とすればログに出るのでは?

    キャンセル

回答 3

+1

SQLはデータベースによって異なります。データベースはOracleでしょうか?タグで明示されては?

Oracleでしたら、マニュアル SQL*Plus ユーザーズ・ガイドおよびリファレンス のSETシステム変数の一覧 に載っていないから、環境変数では?って言っているのでは?
マニュアルを確認する習慣を身に着けてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 08:15

    ご回答ありがとうございます。
    記載していただいたマニュアルは確認済みですが、システム変数の設定の仕方が分からない、という状態です。分かりずらく申し訳ありませんでした。

    キャンセル

  • 2018/05/29 08:26

    cmdファイルにしか見えない

    キャンセル

  • 2018/05/29 08:50

    右に同じ。
    Oracle12cのsqlplusから
    SET NOCOUNT OFF
    って実行すると、
    P2-0158: 不明なSETオプションです。"NOCOUNT"
    って怒られます。

    キャンセル

  • 2018/05/29 08:51

    Sqlserver向けenvだし

    キャンセル

  • 2018/05/29 09:00

    SQL Serverは疎いけど、テーブルの内容をCSVに出力するのに環境変数の設定まで必要なんですか?

    キャンセル

  • 2018/05/29 09:07

    xx件 取得しました 的な出力のON/OFF だったはず

    キャンセル

  • 2018/05/29 09:11

    環境は、WindowsServer2012R12、Oracle Database 12c Standard Edition R2です。
    1..batファイルをクリック
     1-1..SQLファイルの読込、DBのデータをCSVファイルに出力
     1-2.ログファイルの生成
    をしたいと考えています。

    キャンセル

  • 2018/05/29 09:48

    asahina1979 さんありがとうございます。件数の出力のON/OFFを環境変数でやるなんて面倒ですね。

    キャンセル

  • 2018/05/29 09:54 編集

    pg_riさん、環境は[質問]に追記すると共に[タグ]に[Oracle]を追加してください。
    SQLの観点から Oracle Database, PostgreSQL, MySQL の特徴を整理しよう!
    マニュアルは確認済み、ならマニュアルに載っていない設定は削る、って選択するのが一般的では?マニュアル バグで 載っていないならオラクル・サポートにクレームを入れます。
    https://www.ashisuto.co.jp/corporate/column/technical-column/detail/1197236_2274.html
    テーブルの内容をCSVに出力するには
    http://otn.oracle.co.jp/otn_pl/otn_tool/code_detail?n_code_id=764
    も参考にされては?
    OracleでのSQLの書き方は以下を参考にされては? csv出力ではないけど。
    https://qiita.com/Papageno/items/6b1667ab4a29d925d3ef

    キャンセル

0

  • 環境変数の定義の仕方
    SET NOCOUNT=OFF
  • 覚えるべきこと
    SQLサーバとOracleの違い、ストアドプロシージャ(T-SQL,PL/SQL)とコマンドプロンプトの違い、コマンドプロンプトとは何か、SQLとは何か、javaとは何か…と枚挙に暇がないですが、おそらく第一に覚えるべきことは"質問の仕方(困っていることの説明のしかた)"かと思います

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/29 08:18

    ご回答ありがとうございます。
    質問の記載方法が悪く申し訳ありませんでした。
    環境変数の定義の仕方、をご教示いただいておりますが、環境変数編集画面には、
    「変数」ー「値」と紐づいているかと思います。
    今回はこの「変数」ー「値」にSET NOCOUNT=OFF をどう設定するべきかが分かりませんでした。
    教えていただけますでしょうか。

    キャンセル

  • 2018/05/29 13:46

    そのやりかたは、変数の欄に新規にNOCOUNTを作って、値にOFFとかく。

    ただしこう書いた場合、cmdや.batから使うなら%NOCOUNT%とするはずで、はっきりいって、これでは解決には至らない。
    無からこれが生まれたと思えないので、元を作った人なり管理者なりに、どういう経緯で作って、今これが再利用できるか聞いたほうがいいと思う

    キャンセル

0

SQL*PLUSでの実行結果ならSPOOLですけど、そういうことではない?
問い合わせなどの実行結果をファイルに出力する

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    12821questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • SQL

    2165questions

    SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。