SQL

Oracle SQL、PL/SQLに関する記事になります。

2018年12月まではOracle11gXEを使用して検証しています。

2019年1月からはOracle12cを使用して検証しています。

SQL

0埋め パディング

SELECT結果を固定の桁数で出力したい時はLPAD、RPADが使えます。 LPAD — 左0埋めで10桁出力する SELECT LPAD(‘123’, 10, ‘0’) FROM DUAL; LPAD(‘123’,1 […]

SQL

INVALID

エラーが発生しているオブジェクトを抽出するサンプルSQLです。 STATUSがINVALID(無効)になっているオブジェクトは何かしらエラーが発生しています。 開発時によく使っているクエリです。不要なオブジェクトならDR […]

SQL

DEFINE

DEFINEを使うと、SQL内の特定文字列を定義した内容に置き換えてからSQLを実行することができます。 DEFINEのメリットはDEFINE定義を変更するだけでSQL自体を変更せずに済むので、保守性が向上するという点に […]

SQL

SUBSTRでLEFT、RIGHT、MIDを表現できる

SUBSTRの使い方を微妙に忘れてしまうのでメモしておきます。エクセル関数でいうところのLEFT、RIGHT、MIDを全てSUBSTRを使って実現できます。 SUBSTRサンプルSQL SELECT NAME , SUB […]

SQL

LISTAGG

LISTAGGを使って検索結果を横並びで出力させるサンプルです。 たま~にSQLの検索結果を横並びで出力したいことがあるので、シンプルなサンプルSQLをのせておきます。 通常の縦並びで検索結果を出力 — 部署毎、名前毎 […]

SQL

NVL、NVL2、CASE、SUBSTR

NVL、NVL2、CASE、SUBSTRですが、いつも使い方がわからなくなってネットで検索するのでメモしておきます。 NVL SELECT ID, NAME, NVL(NAME, ‘NULL’) FROM TB_SAMP […]

SQL

処理速度検証(MARGE)

PLSQLでテーブルにデータが存在しないことをチェックしてからINSERTを行うという処理を作っていたのですが、MERGEのNOT MATCHEDを使った方が体感的に処理速度が速いなと感じたので処理速度検証をしてみました […]

SQL

PLSQLテンプレート

ロジックを組み込んだ抽出処理や更新処理などを作成する場合、複雑なSQLを作成するよりも、PLSQLを使った方が直感的にわかりやすいロジックを作ることができます。 ただ、PLSQLの構文は記憶はしていないので、ここによく使 […]

SQL

expdpとimpdp

expdpとimpdpのサンプルコマンドです。 expdpはDBからバックアップ用のダンプファイルを作成します。 impdpはダンプファイルからオブジェクトを復元します。 スキーマを指定してexpdpとimpdp exp […]

SQL

SQLLOADER 最大長を超えています

SQLLOADERで桁数エラーとなる、よくあるパターンを紹介します。 SQLLOADERで255バイトを超えるデータを扱う場合、CTLファイルに桁数を定義していないと、「データファイルのフィールドが最大長を超えています」 […]