oracle

oracle

Oracle CONNECT BY PRIOR句とLEVEL疑似列を使って階層表示

以下のようなTREE構造をテーブルで保持している時「階層(レベル)」を知りたくなる状況があります。これを「自力」で求めるのは大変ですが、connect by prior句とLEVEL疑似列を使う事で簡単に導出できます。 社員名(社員番号) ...
oracle

Oracle rownumとは

ROENUM疑似列 rownum疑似列といいます。rowidと勘違いしそうですが、こちらはselectの結果セットに対し、1から順番に採番してくれる「疑似列」です。もっとも利用されている例の一つに、SELECTの結果件数を制限する事に使った...
oracle

DBA_PROCEDURES

ストアド一覧 ストアドパッケージは1行で出力する。 select w.OWNER,w.OBJECT_NAME,w.OBJECT_TYPE,w.PIPELINED,o.STATUS,o.LAST_DDL_TIME from ( select ...
oracle

Oracle シーケンス操作

シーケンスの作成 create sequence seq01 increment by 1 start with 1 maxvalue 99999999 minvalue 1 cycle order cache 20 ; 作成シーケンスの確...
oracle

Oracle OUTパラメータファンクションの実行

OUTPUTパラメータありファンクション outputパラメータのあるファンクションを実行するにはSQLからの直接実行できません。プロシージャ内での利用や、無名ブロックからの実行になります。 OUTPUTパラメータありファンクションサンプル...
oracle

Oracle ET$で始まるテーブル

Data Pumpは外部表を使っている? ふと気づくといつの間にかにET$から始まるテーブルができていました。調べてみるとData Pumpが動作する際外部表として一時的に作成され、終了すると自動で削除されるテーブルのようです。過去にimp...
oracle

Oracle 外部表を使ってCSVファイルを参照する

今回の要件 Linux環境にて、国土交通省のサイトからダウンロードしたCSVファイル(Shift_JIS)を外部表として直接SQLから参照できるようにする。 今回は以下のサイトから大字・町丁目レベルの住所データCSVをダウンロードして利用し...
oracle

SQL*Plus でSELECTの結果を縦表示する

Tanel Poderさんの TPT Script つい先日偶然以下の記事を読んで驚きました。もう随分昔の記事ですが、、、 https://cosol.jp/techdb/2013/12/sqlplus_-_prsql_from_tanel...
oracle

Oracle SERVERERRORトリガー

SQLエラーを発生させたSQLを捕まえる時に活躍します。(作成ユーザにはADMINISTER DATABASE TRIGGERシステム権限が必要です。) SERVERERRORトリガーサンプル CREATE OR REPLACE TRIGG...
oracle

Oracle テーブル・ファンクション

事前に2つのTYPEを使い列、テーブルの定義が必要となり少し手間ですが、ファンクションの戻り値をテーブル形式にする事ができます。以下は簡単な例題となっていますが、VIEWでは実現できないような複雑なロジックも実装できて便利です。 検証環境作...