12c

oracle

ORA-02292とORA-02266が発生した時の原因調査方法

「ORA-02292: 整合性制約×××に違反しました。 ORA-02266: 表には有効な外部キーによって参照される一意キー/主キーが含まれています。」何れも FOREIGN KEY (外部キー) に関わるデータの整合性を壊さないようにす...
oracle

Oracle ユーザ(スキーマ)を作成する

ユーザは「CREATE USER」システム権限を保持していないと作成できません。(DBAロールは「CREATE USER」システム権限を持っているのでDBAロールを保持している場合でも作成できます。)
oracle

Oracle ジョブ

Oracle内部にもジョブ管理の仕組みがあります。事前に登録したプロシージャや、SQLを計画実行する事ができます。crontabや運用管理ソフトからわざわざ起動をかけなくてもOracle単体で完結します。個人的にはパフォーマンス調査のための...
oracle

Oracle 実行計画の取得(実際に実行した結果の取得)

EXPLAIN PLANで実行計画(予定)を取得するのでははく、これは実際に動作したあと、「どのようなアクセスパスであったか」を出力します。その昔は、V$SQL_PLANを参照していましたが、こちらのほうが使い勝手よくなりました。
oracle

Oracle インデックスの再構築(断片化解消)

インデックスの断片化を解消
oracle

SQL*Plus でCLOBやLONG型のデータを出力する際に気を付ける事

sqlplusを使っていてCLOBやLONG型のデータを出力する際、途中で切れたり意図しないところで改行されて困ったりしていませんか。V$SQLやV$SQLAREAのSQL_FULLTEXTや、DDL出力する際に使うmetadata.get_ddlでいつかは行きつくお困りごとだと思いますが、対策のポイントは以下です。(設定値は一例です)
oracle

Oracle 接続先確認

SYS_CONTEXT()ファンクションを使うと各種接続先の情報、接続元の情報を確認できます。複数接続先にて作業する可能性がある際は念のために接続先を確認してから作業にとりかかりましょう。作業を始める前にエビデンスとしてこちらの結果出力を保...
oracle

ストアドパッケージをファイル出力する(仕様部、本体部を別々に出力できるので便利!)

以下の手順に従うと、ストアドパッケージをヘッダー用ファイルと、ボディー用ファイルを一気に出力する事ができます。個人的にも基本こちらの方法で出力したソースファイルをgitで管理するようにしています。今回はSQLファイルを利用していますが、SQ...
oracle

Oracle テーブル作成DDLを取得(ファイル出力まで行います)

SQL*Plusを使いパラメータで指定するテーブルのDDLをファイル出力します。手順は簡単コピペだけの2ステップです。(同時にインデックス、コメントの出力も可能なので便利) 手順1 SQLファイル(get_table_ddl.sql)を作成...
oracle

Oracle 表領域の使用率と空き領域サイズを確認する

GUIで調べるのもいいのですが、やはりSQLでサクッと調べたいものです。個人的にもこのSQLのコピペ使用率は高いです。Oracleは表領域(TABLE SPASE)という論理的な記憶領域にテーブルやインデックスを格納しています。このためテーブルデータが大きくなると表領域内の空きスペースがなくなりORA-01653エラーが出てしまいます。このエラーが出るって事は「本来格納すべきデータが欠落する」って事なのでDBの最も重要な仕事ができていない事になります。普段から表領域の使用状況には気配りしておいて、使用率が高くなってきたら早めに表領域の拡張をお勧めします。