PL/SQL・サブメニュー
本ページは、Oracleデータベースに対する運用、および障害対応のための操作方法を示すインデックスを記述する
なお、本ページは、
「PL/SQL 」
に関するサブ・メニュー部分である
―――――――― 使い方 ――――――――
WSHシェルからSQLPLUSの起動方法
WSHシェルからSQLPLUSの起動方法
WSHシェルからSQLコマンドの発行
WSHシェルからSQLコマンドの発行
パイプコマンド“|“ が行う機能
パイプコマンド“|“ が行う機能
単独コマンドで、動的SQL文内のバインド変数を使う方法
【PL/SQL での行の継続のための記述】
SQL*PLUSをサイレント・モードで起動する
SQL*PLUS使用中のOSコマンドの実行
SQL*PLUSでの接続方法
sqlplus /nolog (ログインせずにSQL*Plusを起動)
connect ユーザー名/パスワード@IPアドレス:ポート番号/グローバル・データベース名
connect ユーザー名/パスワード@接続識別子
操作対象のデータベースは、SQL*PLUSの接続で指定したグローバル・データベース名もしくは接続識別子で指令されているオラクルインスタンスDB
SQL*PLUSの調査時によく使うコマンド
SQL*PLUS 列と列の区切り文字の設定 SET COLSET 文字
SQLコマンドの実行時間測定 SQL*PLUS
SQL/Plusでの無名プロシージャの実行方法
コマンドからのプロシージャの呼出し方法 EXECUTE プロシージャ名(引数, ・・)
PL/SQLプログラムのデバッグ方法
SQL*PLUS画面への変数の値の出力方法
PL/SQLプログラムのデバッグ方法
SQL*PLUS画面への変数の値の出力方法
プロシージャに対するデバッグの操作
SQL*PLUS スクリプト実行方法 sql> @スクリプト名
SQL*PLUS @?の?は、ORACLE_HOMEディレクトリを指す
使用例 SQL> @?/rdbms/admin/profload.sql
SQL*PLUSのスクリプト実行指定において、?は$ORACLE_HOMEディレクトリを意味する
ただし、クライアントからの実行時には、Sqlclient導入時のクライアント側ディレクトリ
使用方法:SQL> @?/スクリプト名.sql
バッチファイルからのSQLスクリプト実行への記述方法
SQLスクリプト・ファイルの中から別のSQLスクリプト・ファイルのSQL文を実行する方法
SQL*PLUSの使い方
SQL*PLUSの使い方
・書式
・画面のサイズと制御設定の方法
・デバッグの方法
・日付形式データの書き方
【SQL Developer】
デバッグツール(開発)SQL Developerの使い方
【SQL Developer】
デバッグツール(開発)SQL Developerの使い方
開発ツール SQL Developerの使い方
テーブルのレコード表示
SQLワークシートの実行
―――――――― SQL文 ――――――――
データの中への「'」シングルクォーテーションのセット方法
SELECTした結果Aを、元テーブルとしてとらえたSELECT文
Select 〜〜〜 from ( Select 〜〜 from *** where 〜〜〜 )
Where 〜〜〜
SQL文の中でファンクションを直接呼び出す方法
【過去時点】のレコードの値の調査方法(フラッシュバック問合せ)
マトリックス表を作成する
SQL文のヒント句の書き方 /*+ */
オプティマイザヒントの記述方法
(実行計画のアクセス方式の固定指定)
オプティマイザヒントの一覧と使い方(ヒント句一覧)
SQL文自体に対するコメント句の記述方法 /* */
コメントの書き方
SQL*PLUS
PL/SQL
―――――――― 書式 ――――――――
数値の書式指定フォーマット変換 (PL/SQL)
日付型式データの文字列変換関数
日付型変数へのデータセット方法
―――――――― 関数、ファンクション、プロシージャ ――――――――
SQL関数
文字列関数 (PL/SQL)
日付操作のための演算関数 (PL/SQL)
プロシジャーやファンクションのコンパイル・エラー発生箇所の表示方法
【SQL*PLUS】
プロシージャ登録時のコンパイルエラー対処の方法
ストアドプロシージャの文法ミスの表示
プロシージャのデバッグ 及び、実行
トリガーの作成方法 (PL/SQL)
SQL*PLUSからの
無名PL/SQLブロック実行
ストアドプログラムの呼出し
(ストアド)パッケージの呼出し方法 (PL/SQL)
PL/SQLサブプログラムの構成
(ストアド)ファンクションの作り方
(ストアド)プロシージャの作り方
SQLコマンドからのファンクション呼出し方
PL/SQLからのファンクションの呼出し方
PL/SQLからのストアドプロシージャの呼出し方
SQL*PLUSからのストアドプロシージャの呼出し方
SQL*PLUSからのファンクションの呼出し方
(ストアド)パッケージの作成方法 (PL/SQL)
プロシージャの作成と保存
PL/SQLパッケージの使い方とCOMMIT操作
プロシージャとファンクションの作成と呼出し ―ロジック内からの使用―
プロシージャとファンクションの作成と呼出し ―ストアドプログラムとして―
パッケージの作成方法 (PL/SQL)
パッケージの定義方法
プロシージャ間で共通に使う変数とカーソル
ストアドプロシージャをネイティブコンパイル(プラットフォームOS固有の実行形式)まで行う方法
ストアドプロシージャをネイティブコンパイルから中間コードへ戻す方法
ストアドプログラムのネイティブコンパイルと初期化パラメータ
―――――――― トランザクション ――――――――
トランザクションでSelectされるデータの基準時点
データの一貫性を保つタイミング・ポイント
【トランザクションの分離レベル】
Select操作での読取られるレコードの基準時点の指定
【読み取り一貫性機能による対象処理データの時刻タイミングの固定】
SET TRANSACTION READ ONLY の発行
【サブトランザクションだけのコミット操作】
本体のトランザクション中に、分離したサブトランザクションを作成して、
本体のトランザクション制御から独立させCOMMITさせる方法
ロールバック処理における一部分だけの適用
【他のトランザクションからレコードの追加を防ぐには、テーブルロックを掛ける】
トランザクションを行っているプロセス自身のセッションID
―――――――― 処理 ――――――――
データ型と変数定義(PL/SQL)
ユーザー作成定義型構造体(レコード型変数)の生成 (PL/SQL)
テーブルのレコードに対するデータ型と変数定義 (PL/SQL)
テーブルのレコードに合わせたデータ型
列型(%TYPE)とレコード型(%ROWTYPE)
レコード型と列タイプ型の変数定義と使い方
日付型データの変数セット (PL/SQL)
配列の作成
【配列の定義と使い方】
カーソルを使用した複数レコード処理
複数レコード・データの配列への格納
Select * BULK COLLECT INTO ・・・・・・
Select文で、対象データを一括で、配列型変数にセットする方法
テーブルへのレコード新規追加の高速技法コーディング
配列を使ったバルクInsert方法
演算子と比較条件の一覧 (PL/SQL)
NULLの判別
NULLの値は、IF a > 100 :FALSE かつ、 IF a ≦ 100 :FALSEとなる
NULL判定の方法は、 IF 変数 IS NULL THEN
繰返しループ( LOOP )処理
FORループ【反復】処理 回数指定
PL/SQLプログラミング命令 CASE、FOR、LOOP、EXIT
プログラミング・ステートメント
SQL文の組み立て方法
(文字列の中のシングルクォーテーション「’」)
WHEREの条件式中の文字指定値の記述
配列データに関する一括INSERT/UPDATE/DELETE操作
INSERT/UPDATE/DELETEとなった対象データの表示
更新不可能なビューに対して、更新を行うSQLトリガー
合計件数が多い順に、明細データを並び変える
SELECT結果に対する上位トップ**位までのレコード件数限定出力方法
【SQLコマンドの定期時間間隔での処理実行方法】
データベースの状況をリアルタイムに監視する方法(リアルタイム監視)
データベースの状況をリアルタイムに監視する方法(リアルタイム監視)
SQL*PLUSでのバインド変数の使い方
変数(PL/SQL)、変数(SQL*Plus)、ホスト変数、バインド変数の違い
ホスト変数、バインド変数の使い方
SQL/Plusから直接のファンクション呼出し方法
変数の種類
PL/SQL内での変数(ストアドプロシージャ、ファンクション内での定義変数)
SQL*PLUS内での定義変数
・ホスト変数
・バインド変数
ホスト変数とバインド変数の使い方
変数への値をキーボード入力から行わせる方法
( ホスト変数、バインド変数 )
SQL*PLUSでの変数(バインド変数)を使ったSelect文の実行
SQL*PLUSからPL/SQL無名ブロックの直接呼出し
Select ・・・ into 変数 による変数への値代入
(個別セッションでの)
ソート作業領域(PGAメモリ)の臨時的拡大方法
【一時表の作成方法】
一時表のデータは、セッション接続期間内だけで有効で、後は消去される。
また、データを利用できるのは、データを作成したセションだけである。
一時表の定義だけは、セッション終了後も残っている。
スクリプトの中の DBMS_OUTPUT.PUT_LINE( '*****' ) ; による出力が、表示されない
→ SET SERVEROUTPUT ON; ステートメントを追加する
【動的SQL文の実行】 (PL/SQL)
プロシージャ内のロジック判断により、SELECT、INSERT、UPDATE(複数レコード)、CREATE
を実行するSQL文を動的に作成して実行する方法
PL/SQLプロシージャにおける
バインド変数を使った動的SQL文の作成と呼び出し方法
【カーソルFETCH文を使用した1件のレコード処理】
SELECTによるテーブルの読込み カーソルの使用(PL/SQL)
【FETCHとループ文を使用した複数レコード処理】
【カーソルFORループ文を使用した複数レコード処理】
SELECTによる処理における対象データの全件処理ループ (PL/SQL)
――― 動的SQL文の実行 ――― (PL/SQL)
【FETCHとループ文を使用した複数レコード処理】
Whereの条件内容を、対象とする変数を変更してSQL文を作成し実行する
プロシージャの作成方法
【FETCH処理における現在行のレコード更新】
カーソルによるカレント・レコードに対するデータ更新及び、削除処理
【カーソルを使用した複数レコード処理】
カーソル処理の手順(純粋なFETCH操作)
【カーソルを使用した複数レコード処理】
カーソル FOR ループ文
PL/SQLプロシージャの中処理コードから
指定した初期化パラメータ値を取得する
PL/SQLプロシージャからの
テキストファイルへの読込みと書出し操作
テキスト・ファイル(サーバ上の)にデータを読み書きする
ファイル入力、ファイル出力
HTMLファイルの出力
DBMS_LOCKパッケージ
プログラムの処理を、指定した秒数の間 停止(スリープ)させる
DBMS_LOCKパッケージ
PL/SQLの処理の同時並行処理防止のためのロジカル・ロック制御の実行方法
UTL_FILEパッケージ
テキスト・ファイルへの読書きを行う
DBMS_SQLパッケージ
動的SQL文のプロシージャでの実行方法
ストアド・プロシージャ内から動的なSQL文処理を行わせるためのプロシージャ・コーディング
UTL_MAILパッケージ
PL/SQLの処理の中からメールを発信する
―――――――― エラー・ハンドリング ――――――――
PL/SQLの例外エラー処理機構
エラーが発生した時のエラーコードとエラーメッセージの表示
エラー発生時の例外処理 (PL/SQL)
例外エラーコード (PL/SQL)
エラー処理ルーチン(例外ハンドラ) (PL/SQL)
ユーザー定義独自エラーの作成と対処方法 (PL/SQL)
特定のORA-エラー番号に対し例外名(P.168参照)が決まっていないエラーに対する対処方法
テキストファイル操作に対するエラーイベントと処理 (PL/SQL)
エラー検知 と エラー対応
外側のブロックへのエラー伝達 (PL/SQL)
【Oracleエラー一覧】
―――――――― システム ――――――――
【ORACLE_HOME、ORACLE_BASEが指すディレクトリ位置】
SQL*PLUS $〜は、環境変数の1文字目を表す
使用例 @$ORACLE_HOME/rdbms/admin/profload.sql (Unix系)
@%ORACLE_HOME%¥rdbms\admin\profload.sql (Windows系)
SQLセッションの強制切断(ロック状態の解除)操作
新規のログインが出来ない様にする方法
SYS及びSYSTEMユーザーだけによるデータベースの独占使用
ストアドプロシージャの実行権限の付与
データ型一覧(PL/SQL)
現行セッションの直近でのSQLについてのパラレル(並列)度の確認方法
オブジェクト(テーブル or インデックス)に設定してあるDEGREE属性(パラレル属性)
の設定値の表示
―――――――― ツール ――――――――
エクスポート、インポート ツール
―――――――― オブジェクト ――――――――
データベースに登録されたオブジェクト(テーブル、ストアドプロシージャ)の存在確認
―――――――― 設定 ――――――――
OracleのSQL*Plus等で使うTCPポート番号設定
SQLPlusからOracleへの接続
tnsnames.ora ファイルを使用しないクライアントのOracle接続(1)
tnsnames.ora ファイルを使用しないクライアントのOracle接続(2)
【SQL Developer】
インストール および必要オブジェクト等の作成作業
【SQL Developer】
ユーザーへのデバッグ権限の付与
ユーザーへのautotrace機能使用のための権限の付与
デバッグ時の実行計画の調査のための保存テーブル作成
プロシージャのデバッグを行うための権限付与
ディレクトリ・オブジェクトの作成とユーザーへの操作権限付与
―――――――― V$動的ビュー ――――――――
セッションに関する情報内容(処理中の起動セッション情報) V$SESSION
セッションに紐付いた他のV$動的ビューとの関係
(関係テーブルをリンク(レコード連結)させるWhere句の指定条件)
セッションが行っているロックに関する情報 V$LOCK
処理中のセッションに関する実行統計情報 V$SESSTAT
セッションが実行しているSQL文に関する情報 V$SQL
セッションが実行しているトランザクションに関する情報 V$TRANSACTION
CPUリソースを大量に使用しているセッションの調査方法 V$SESSTAT
セッションが使用している一時表領域に関する情報 V$TEMPSEG_USAGE
セッション番号とプロセス番号の関連調査 V$PROCESS
及び、システムリソース利用状況の調査
SQL文の実行計画に関する情報 (ライブラリキャッシュ上の) V$SQL_PLAN
SQL文の実行計画・統計に関する情報 V$SQLAREA
(ライブラリキャッシュ上の)
トランザクション実行中のセッションの調査方法 V$TRANSACTION
OS観点から見たセッションのプロセス情報 V$PROCESS
セッションに紐付いた他のV$動的ビューとの関係
(関係テーブルをリンク(レコード連結)させるWhere句の指定条件)
―――――――― セキュリティ ――――――――
実行コマンドの隠蔽
第三者に解らないようにして、SQLコマンドを実行する方法
SQLインジェクション対応
SQLインジェクション対応
シェルスクリプトに、ユーザー名とパスワードを埋め込まない方法
【 sqlplus ユーザー名/パスワード@Netサービス名 のセキュリティ脆弱 】
sqlplusでの特定コマンドの実行禁止制御設定
WRAPユーティリティ
テキスト・ファイル(PL/SQLソース・コード)の内容を暗号化して別ファイルを作成する
―――――――― その他 ――――――――
SQL文の実行と結果表示
SQL*Plusにて、直前実行コマンドの実行計画表示の方法
実行計画の表示
実行トレースの表示
DBMS_ALTERパッケージ
プログラム間での(アラートなどの)メッセージ通信を行う方法
【通信開始タイミングは、COMMIT実行時】(非同期)
(レコード内容の変更などの操作が起こった場合に、使う)
※ 受信側プロセスは、メッセージ受取りステートメントで待機状態になる
DBMS_PIPEパッケージ
データベース・プロセス間で、パイプを使用してメッセージ通信を行う方法
【通信開始タイミングは、パイプ書出し実行即時】
(レコード内容の変更などの操作が起こった場合に、使う)
※ 受信側プロセスは、メッセージ受取りステートメントで待機状態になる
『ORACLE運用対応メニュー』へ戻る