カーソルに入っているデータが0件だった場合、Oracle上ではエラーとはみなされず、処理が正常終了してしまいます。 よくわからいのですが、 (面倒な方法ですが、カラム表示に拘るならこれしかありません), ここ数日、何となく気になっているのですが、SQL*Plusで、「n行選択されました」とか「PL/SQLは正常に終了しました」とかのメッセージを動的に非表示にする方法ってありますか? set feedback off 先のSQLの「入社年」ですが、 のどちらかを、スクリプト実行前に入力してください。 ---------------------------     →カーソルのデータがなくなったら処理を正常終了 20050322.TODAYといった具合に SYSDATEに応じてファイル名を可変にしたいのですが。。 raise NO_DATA_FOUND; fetch cur1 into rec1; --------------------------- SELECT 'SPL_' || TO_CHAR(SYSDATE,'YYYYMMDD_HH24MI') || '.LOG' SPOOL_FILE_NAME 私はOracleの知識(管理面について)が殆どなく、Oracleを使うことはできるが、Oracleの設定がどういう状況になっているか調べることもできず、資料もありません。 上記のように意味不明な形式で出てきます。 カラム名3 サーバにアクセスしてsqlplusで、 set linesize 1000 プライマリ・コンテンツに移動. -- --------- ------- カラム名1 --------------------------- 3の値 Aテーブルをカーソルで検索 文字列の右端にあるスペースを 1 つだけ削除したい場合は、次式で可能です。スペースでない文字は、削りません。幾つも右端にスペースが連なっている場合は、次式での処理を何回か繰り返せば、そのうちに全て削除されます。なお「" "," "」という部分は、全角と半角のスペースという意味です。   これらは#1の方がおっしゃったLOGMINERで実行済みSQLを調査することができます。 SQL>show linesize --------------------------- 可能でしょうか。 サーバにアクセスしてsqlplusで、 ログインできない場合いろいろな原因が考えられます。 Oracle SQL*Plus SPOOL出力を使ってログを取得する方法 . sqlplus sys/パスワード@接続文字列 as sysdba set difine SPOOL_FILE = &1 分かりづらくですいませんが、皆さま、ご教授お願いします。, いつもお世話になっています。 82 CLERK $1,300 ----------------------------------------------- -- ■SPOOLファイル名の作成 No.2 さんも言及...続きを読む, ※各種外部サービスのアカウントをお持ちの方はこちらから簡単に登録できます。   やっていることは、UNDO表領域(旧RBS用表領域)の中に残っている実行履歴を参照しています。したがって、データベース設計時にフラッシュバック問い合わせを前提としていない限り、使える可能性は低いです。   これは初期化パラメータUNDO_MANAGEMENTがAUTOに設定されており、かつUNDO_RETENTIONが保存期間として適切に設定されている場合のみ使用できます。 WHENEVER SQLERROR EXIT FAILURE ROLLBACK end loop; sqlplus user/user @file SPOOLファイル名 文字列開始 "SPOOL_FILE..."は長すぎます。最大サイズは1文字です。 ただし、それぞれの設定レベル、保存方法によって、参照できる範囲は変わります。 80 CLERK $800 select カラム1,カラム2,カラム3 from hoge; 一番可能な原因は設定によってSYSユーザーNOMAL権限でログインできない場合あります。 SQL文にてデータベース内のテーブル名を Win2000 と Oracle 8.1.7 の組み合わせです。, set echo off SELECT TO_CHAR(HIREDATE,'RR') AS 入社年, JOB AS 職種 , TO_CHAR(AVG(ROUND(SAL,1)),'$9,999') AS 平均給与 FROM EMP GROUP BY TO_CHAR(HIREDATE,'RR') ,JOB カラム名3   これらは#1の方がおっしゃったLOGMINERで実行済みSQLを調査することができま...続きを読む, いつもお世話になっています。 出力形式が見づらくて困っています。 この操作の方法を教えてください。, 既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。 1.オンラインREDOログとアーカイブログ カラム名1 回答のほどよろしくお願い致します。 データを調べたいのですが、   ですが、そのREDOログのサイズとシステムのアクセス量によって保存期間は変化します。アーカイブログ設定しておけば、古いREDOログはアーカイブとして吐き出されます。 >SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。 カラム名3   アーカイブログモードになっているかどうかは、下記で確認できます。 SPOOL &SPOOL_FILE_NAME > HO SQPLUS -SILENT @hoge.SQL カラム名1 col 入社年 format a6 --------------------------- 3の値 --------------------------- 意図せずに、セルの文字列の後ろにスペースが入っている事があります。 SQL> select * from m_user where cd = 100; CD NAME ----- 100 SUZUKI SQL> spool off メモ. または 動的にSPOOLファイル名を決定する方法を記載しておきますね。 カラム名1 対策ですが、デフォルトに頼らず、自前で設定するとこができます。 --------------------------- All rights reserved. Oracle SQLの結果をWindowsのファイルに出力する方法は? コマンドラインからのsqlplusステートメント. よくわからいのですが、 spool SPOOL_FILE スプールのファイル名にバインド変数の内容を使うことはできるでしょうか? 私の場合、テーブル名だけ手っ取り早く知りたいとき、↑を打ちます。その他の情報も知りたいときは#2さんの仰るとおり、user_tablesで取得します。, SQL plusでSYSユーザーでログインするにはどうすればよいのでしょうか? #意図する事と違ったらゴメンナサイ SYSTEMユーザーやSCOTTユーザーではログインできるのですが、SYSユーザーになる方法がわかりません。 パスワードの期限変更 パスワードの期限の確認方法 Oracle. 以上の点についてご存知の方、どうぞ回答よろしくお願いします。, OracleのSQL実行痕跡は以下に示すものの中にあります。 例えばこんな風に しかも、バージョンによって微妙に違う。(^^; ---------------------------   ただし、監査レベルなどを理解しておかないと、すべてのSQLが取得されていない可能性がありますので、難しいかもしれません。, OracleのSQL実行痕跡は以下に示すものの中にあります。 Oracle内のすべてのテーブルのリストを取得しま … set colsep , close cur1; Excel2007を使用しています。 sppol off 下記のように使用すると、SPOOLファイルが作成されませんでした。 81 PRESIDENT $5,000 =left(a1,len(a1)-or(right(a1)={" "," "})) SPOOL filename [[APPEND] | [OFF]] filename は、出力が送信されるファイル名です。フルパス名が指定されていない場合、ファイルはカレントADRCI作業ディレクトリに作成されます。ファイル拡張子が指定されていない場合、デフォルトの拡張子.adoが使用されます。 --------------------------- というコマンドを投入すると、「入社年」というカラムは、内容に 初心者的な質問でしたらすいません。    SQL> select name,to_char(completion_time, 'yyyy/mm/dd hh24:mi') adate from v$archived_log; ADRCI出力をファイルへ送信します。, filenameは、出力が送信されるファイル名です。フルパス名が指定されていない場合、ファイルはカレントADRCI作業ディレクトリに作成されます。ファイル拡張子が指定されていない場合、デフォルトの拡張子.adoが使用されます。APPENDを指定すると、出力がファイルの末尾に追加されます。指定されていない場合は、ファイルが上書きされます。スプールをオフにするにはOFFを使用します。, このコマンドを使用する前に、ADRホームを設定しておく必要はありません。. 起動オプションに -SILENT をつければいいのは分かるんですが、通常のSQLスクリプト内に一時的に非表示するような命令を埋め込めないかと思いまして… 2.フラッシュバック問い合わせ お願いします。, select * from tab; EXIT; ご回答ありがとうございます。 で確認ができる。, Oracle SQL*Plusで、SPOOLコマンドを使用すると、SQL実行の結果はファイルに出力されますが、実行したSQL自身が出力されません。 そもそもコマンドが間違っているような気もします。 if cur1%notfound then No.2 さんも言及されていますが、文字列の最後に改行の文字列が付いている場合、右端はスペースではないと判断されてしまうので、注意してください。改行の文字列を削除するには、CLEAN 関数を使うか、または置換ダイアログにおける Ctrl+J のキー操作により除去します。 SP2-0332:スプールファイルが作成できません。, こんにちは。 SELECT .... お試しくださいな。 どなたかご教示いただければ幸いです。 81 SALESMAN $1,400 SETコマンドで制御できるのではないかと思いましたが、ちょっと見当たりませんでした。 --------------------------- で試してください。 SQL * Plusマニュアルから直接http://download.Oracle.com/docs/cd/B19306_01/server.102/b14357/ch8.htm#sthref1597, SET TERMOUT OFFは、出力をスプールできるようにするため、画面上で表示せずにスクリプトからを表示します。, ファイルへのスプールと端末への書き込みの両方が必要ない場合は、SQLスクリプトでSET TERMOUT OFFを使用して端末出力を無効にします。, set termout offはコマンドラインでは機能しないため、ファイルを作成します。 termout_off.sql行を含む:, ORA-12514:TNS:リスナーは現在接続記述子で要求されたサービスを認識していません, Oracle Databaseで「SET DEFINE OFF」を使用するタイミングまたは理由, SQL Plusから実行されているSQLスクリプトでアンパサンドを無視するにはどうすればよいですか?, Oracle SQL Developerを使用してエンティティ・リレーションシップ(ER)図を生成する方法, ORA-00054:リソースがビジネスであり、NOWAITが指定されているかタイムアウトが期限切れになっています, ORA-12505、TNS:リスナーは現在、接続記述子に指定されたSIDを認識していません, Content dated before 2011-04-08 (UTC) is licensed under, http://download.Oracle.com/docs/cd/B19306_01/server.102/b14357/ch8.htm#sthref1597. exit when cur1%notfound; ありがとうございました。, 「BiND とは」に関するQ&A: DataTableから条件を満たした行を別のDatatableへコピーしたい, 世の中の成功している男性には様々な共通点がありますが、実はそんな夫を影で支える妻にも共通点があります。今回は、内助の功で夫を輝かせたいと願う3人の女性たちが集まり、その具体策についての座談会を開催しました。, SELECT文の結果をDEFINEの値として使用したいのですが。。。 [Oracle9i], SELECT INTOで一度に複数の変数へ代入をするにはどのようにすれがよいでしょうか?, 実行するSQLは同じだが、実行するタイミングによってSPOOLファイルのファイル名を変更したい。 関わらず、6桁幅で表示されます。 fetch cur1 into rec1; この場合 強引にやろうとすれば、HOSTコマンドで子プロセスを起動して、 大量のセルがある為、簡単な操作にてシート単位または列の単位にて、スペースをまとめて削除をしたいと考えています。 カーソルデータが0件だった場合にエラーを発生させるにはどのようにコーディングすればよいですか?. FROM DUAL; Copyright ©1996, 2018,Oracle and/or its affiliates.     →データが入っていた場合には処理 スプールのファイル名にバインド変数の内容を使うことはできるでしょうか?下記のように使用すると、spoolファイルが作成されませんでした。20050322.todayといった具合に sysdateに応じてファイル名を可変にしたいのですが。。どなたか sqlに関するツールは使用できないルールでして、あくまでsqlplusのコマンド上でみやすくしなければなりません。 ちなみにOracle9iR2を使用しています。 spoolを使用してログを出力する方法基本構文は、以下になります。「spool ファイル名」で問い合わせの結果を任意のファイル名に出力する設定をします。「spool off」で出力停止の設定をします。spool使用例今回は、「c:\temp カラム名2 @file    SQL> select log_mode from v$database;   オンラインREDOログはすべてのOracleデータベースに存在します。 end if; FROM DUAL; =left(a1,len(a1)-or(right(a1)={" "," "})) っていうのがあったと思いますよ 1.そもそもOracleにSQLをログとして保存する機能があるのか? 81 MANAGER $2,758   また、どのアーカイブログファイルを調査するかは下記を参照すれば良いと思います。 ●置換ダイアログの「検索する文字列」にカーソルを置いて Ctrl+J のキーを 1 回だけ押す。このとき見かけ上は何の変化もないが、目に見えない何かが入力されているので、気にしない。「置換後の文字列」には何も入力しないまま、「すべて置換」または「置換」ボタンにより実行すると、改行が除去される。, 既出のご回答のとおり、全体的に綺麗にするには、TRIM 関数を使います。位置や個数に関らず全てのスペースを削除するには、置換(Ctrl+H)が簡単です。 2019.09.26 2019.10.13. 83 CLERK $1,100, SQL*PLUSの表示幅は、自動的に決定され、カラムヘッダは、 Oracleの設定などは前任者がしており、まともな引継ぎを受けないまま私が維持運用員となりました。 うまいやり方を知ってらっしゃる方、或いはそんな方法など無いことをご存知の方は、どうかご教授ください。