SQLPlusでSQLファイルを指定して実行したい。 4 / クリップ sql*plusのloginファイルの詳細は、「sql*plusの構成」および「sqlplusプログラムの構文」を参照してください。 システム変数の現行の設定を表示するには、showを入力し、その後に変数名を入力します。 sales.sqlに格納されているコマンドを取得して実行するには、次のように入力します。 start sales. バッチファイルとしては、1,2行目がコメントとなるので、3,4,5行と順に実行し、5行めのexitで終了します 一方、sqlplusの入力文としては、1行目は行コメント、2~6行目まではブロックコメントになるので、7行目のsqlが実行されます SQL*Plusを起動して作業を行う際は、初めにSET~、SELECT~と毎回決まったコマンドを実行する人が多いと思います。そういった煩わしさを解消できるのがglogin.sqlとlogin.sqlです。glogin.sqlとlogin.sql はSQL*Plusの環境設定をサポートしてくれます。, https://docs.oracle.com/cd/E82638_01/sqpug/configuring-SQL-Plus.html#GUID-410DDF15-7230-4238-B3FF-BA965CE16B2E, glogin.sqlとlogin.sqlはSQL*Plusの起動時に書き込んだコマンドを自動実行してくれます。以下に glogin.sqlとlogin.sql の特徴をまとめました。, glogin.sqlは $ORACLE_HOME/sqlplus/adminに存在します。対象ユーザーはSQL*Plusを実行した全OSユーザーとなります。login.sqlは環境変数ORACLE_PATHに指定したディレクトリ内に作成します。対象ユーザーは環境変数ORACLE_PATHにlogin.sqlが存在するOSユーザーのみとなります。実行タイミングとしてはglogin.sqlの後にlogin.sqlが実行されます。今回はglogin.sqlとlogin.sqlの両方に設定を入れて動作を検証してみましょう。 ■実施環境OS:Oracle Linux 6.5DB:Oracle Database 12c R1, $ vi $ORACLE_HOME/sqlplus/admin/glogin.sqlglogin.sqlに検証として以下を追記します。 set pagesize 0 set linesize 100 select '-------------------------------------------' from dual; select '-------------------------------------------' from dual; select '現在、'||TO_CHAR(sysdate,'YYYY/MM/DD(DY) HH24:MI:SS ')||'です。' FROM dual; select '設定変更作業時は以下を実施すること!!' from dual; select '・Wチェックの実施(声だし、指差し確認)' from dual; select '・作業エビデンスの取得' from dual; select '-------------------------------------------' from dual; select '-------------------------------------------' from dual; set pagesize 1000, -SQL*Plusで接続し、login.sqlの内容が反映されているかを確認します。, $ sqlplus system/password@pdb1SQL> show pagesizeSQL> show linesize, SQL*Plus接続時にglogin.sqlに記載したSELECT文の実行結果が表示されることとSETコマンドのPAGESIZE、LINESIZEが反映されていることが確認できました。, $ mkdir /home/oracle/sqlplus_config$ vi /home/oracle/sqlplus_config/login.sqllogin.sqlに検証として以下を追記します。 SET SQLPROMPT "_USER'@'_CONNECT_IDENTIFIER > " SET LINESIZE 1000 ⇒SQLPROMPTはコマンドプロンプトの表示名を変更します。 デフォルトは「SQL>」ですが上記の設定では「ユーザー名@接続識別子>」 の形式で表示されます。, $ vi ~/.bash_profile以下を追記する。export ORACLE_PATH=/home/oracle/sqlplus_config ⇒login.sqlを格納したディレクトリを指定上書き保存でlogin.sqlを閉じたら、設定を反映させましょう。$ source ~/.bash_profile, glogin.sqlとlogin.sqlの設定ができました。SQL*Plusを起動してみましょう。, 環境変数ORACLE_PATHに指定したディレクトリ内のlogin.sqlにはSET LINESIZE、SQLPROMPTを書いていますがしっかりと内容が反映されていますね。glogin.sqlには「SET LINESIZE 100」と書き込んでいますが「SHOW LINESIZE」の出力結果にはlogin.sqlに書いた「SET LINESIZE 1000」が最終的に設定されていることがわかります。これは冒頭で説明した通り、glogin.sql⇒login.sqlの順にファイルが読み込まれるためです。このようにSQL*Plus起動時に実行したいコマンドをglogin.sqlまたはlogin.sqlに書き込んでおけば余計な手間を省くことができます。作業前に必ず実行するコマンドがある場合は有効活用しましょう。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 都内SIer企業に在籍しています。 例5-7 スクリプトの実行. 実行方法 12 sql*plusコマンド・リファレンスから省略できる文字を確認できます。connectの場合は、conn[ect]と記載されており、conn,conne,connec,connectいずれでも動作します。 基本の構文について. 実行タイミングとしてはglogin.sqlの後にlogin.sqlが実行されます。 今回はglogin.sqlとlogin.sqlの両方に設定を入れて動作を検証してみましょう。 実施環境 OS:Oracle Linux 6.5 DB:Oracle Database 12c R1. Copyright © 2019 Database Working All Rights Reserved. はじめまして。よろしくお願い致します。 発生している問題・エラーメッセージWindowsを再起動したら、SQLPLUSで出力する日本語が文字化けするようになってしまいました。正確に言うと、日本語始まりの場合に文字化けします。例えばPROMPT句で以下のようになります。 PROMPT あいうえお・ 0, 回答 Help us understand the problem. その場合、BOMを取り除けば該当のエラーは発生しなくなるかと思います。, sqlplusの引数に指定した(シングルクォーテーションを含む)文字列が、SQL文に正しく渡されない. 【Python】Windowsの指定したフォルダ内にあるフォルダをフルパスで取得しよう. )を使用して、変更する行を表示します。, APPENDを入力し、その後に追加するテキストを続けて入力します。追加するテキストが空白で始まる場合は、APPENDという単語とテキストの1文字目を2つの空白で区切ります。1つはAPPENDとテキストの区切りで、もう1つはテキストとともにバッファ内に格納されます。, ページおよびレポートのタイトルとサイズの定義について. select した際に、列の別名に列コメントを指定できるデータベースはありますか?またはその方法 ※... shellからsqlplusのサイレントモードで実行するとORA-01034になる, 回答 SQL*PlusでSQLを記述した外部ファイルを実行する方法SQLを記述した外部ファイルをSQL*Plusで実行する方法を解説します。結論からいうと実行したいファイル名の前に「@」をつけるだけで実行可能です。今回は以下のフォルダとファイル構 SQLの処理結果によって終了コード(エラーコード)を返し、起動元でエラー判定を行えるようにしたい。, バッチ引数に、実行したいSQLのファイル名(例えばhoge.sql)を与えることで、該当のSQLを実行できます。 0, 【募集】 SQL Plusで外部ファイル(sqlファイル)を実行する方法SQL Plusで外部ファイル(SQLファイル)を実行する方法を解説します。SQLファイル作成まず、SQLの実行ファイルを2種類作成します。1つは単純なINSERT、もう1つはI バッチの内容はSQL実行。 SQLの処理結果によって終了コード(エラーコード)を返し、起動元でエラー判定を行えるようにしたい。 ファイル構成.