SQL

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

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

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

SQL

LISTAGGとXMLAGGの処理速度検証

LISTAGGでは4000バイトを超える結果はエラーとなるため、XMLAGGを使えば回避できますが、処理速度はどれぐらいの違いかあるのが気になったので検証してみました。 1万件のデータを準備して検証しています。 LIST […]

SQL

LISTAGGで最大長を超えました

LISTAGGを使って検索結果を横並びに出力する事ができますが、検索結果が4000バイトを超えるとエラー「ORA-01489: 文字列を連結した結果、長さが最大長を超えました」が発生します。 4000バイトを超えるデータ […]

SQL

INSERT文の自動生成

INSERT文を手作業で作ろうとすると、把握していないテーブルや、カラムが多いテーブルだと、INSERT文を作成するのに結構手間がかかると思います。 スキーマ名とテーブル名を指定すれば、自動でサンプル用のINSERT文を […]

SQL

オラクルユーザーのパスワード変更

オラクルユーザーのパスワード変更です。 たまにしか使わななくて、いっつも忘れるのでメモです。 パスワード変更 — TESTはスキーマ名、TEST123は設定したいパスワード ALTER USER TEST IDENTI […]

SQL

DECODEでソート

DECODEを使って検索結果のソートをすることができます。独自の仕様で並び替えたい場合によく使います。 ORDER BY句でDECODEを使用して、置換結果にソートの優先順位を指定することによって、独自の仕様で並び替えを […]

SQL

CASEでソート

CASEを使って検索結果のソートをすることができます。独自の仕様で並び替えを行いたい場合によく使います。 ORDER BY句にCASEのTHENでソートの優先順位を指定することによって、独自の仕様で並び替えを行うことがで […]

SQL

ディレクトリオブジェクト

ディレクトリオブジェクトの確認方法をいつも忘れてしまうのでメモです。 ディレクトリオブジェクト — ディレクトリオブジェクトの作成 CREATE DIRECTORY TESTDIR AS ‘C:\ORACLE\DATA […]

SQL

別名テーブルにインポート

impdpを使って別名テーブルにインポートするサンプルです。 過去のデータと現状のデータで比較したい場合などによく使うと思います。 別名テーブルにインポートするサンプル TB_SAMPLEのデータをTB_SAMPLE_2 […]

SQL

桁数の拡張と縮小

カラムの桁数を縮小する場合、登録済みのデータより小さいサイズの桁数には変更できません。 それでも桁数を縮小したい場合は、既存データのサイズを小さく変更しておく必要があります。 カラムの桁数を拡張及び縮小するサンプル — […]

SQL

Order By句でグループ関数を使う

ORDER BY句はグループ関数を使ってソートができます。 グループ関数で集計した結果を並び替えたい場合に便利です。 ORDER BY句でグループ関数を使う サンプルデータ SELECT CLASS , NAME FRO […]