SQL

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

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

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

SQL

BLOBデータの解凍とファイル出力

テーブルに登録されている圧縮済みのBLOBデータをファイルに出力するサンプルPL/SQLになります。 前提条件 TB_SAMPLEテーブルにファイル名とファイルの中身(BLOB)データが3件格納されています。 DESC […]

SQL

ファイルをBLOBカラムに登録

DBサーバー上にあるファイルをテーブルのBLOBカラムに登録するサンプルになります。 BLOBカラムにファイルを登録する場合、javaなどPL/SQL以外で登録するのが一般的な気がしますが、DBサーバを使ってデータ移行を […]

SQL

BLOBデータの圧縮とファイル出力

文字列をBLOBに変換及びzipで圧縮してテーブルに格納する方法です。 また、テーブルに格納されているBLOBデータ(zipファイル)を取り出し、ディレクトリオブジェクトを使用してファイル出力する方法も記載します。 文字 […]

SQL

BLOBデータをSPOOL

TB_SAMPLEテーブルのBLOBカラムに格納されているバイナリデータを文字列に変換して出力するPL/SQLサンプルです。 文字列で出力する関係上、CLOBに変換してからDBMS_OUTPUT.PUT_LINEを使って […]

SQL

BLOBデータ登録のサンプルPLSQL

BLOBカラムにはVARCHAR2で収まらないような大容量のデータを格納することができます。ただ、BLOBを扱うのはVARCHAR2に比べるとやっかいです。下記はBLOBカラムにBLOBデータを登録する超シンプルなサンプ […]

SQL

BLOBを文字列で出力する

テーブルに登録されているBLOBデータを出力するサンプルになります。 BLOBを通常の文字列で出力するには「UTL_RAW.CAST_TO_VARCHAR2」や「DBMS_LOB.SUBSTR」を使う必要があります。 B […]

SQL

特定の日付で抽出する

特定の日付のデータを抽出する方法です。 条件を指定したい対象のカラムが日付型、タイムスタンプ型となっている場合のWHERE句の指定方法になります。 前提条件 TB_SAMPLEテーブルにDATE型、TIMESTAMP型の […]

SQL

NULLが入る項目にもINDEXの効果がある

昔、NULLが入る項目にINDEXを張っても効果が無いと聞いたことがあって、NULLが入る項目にはINDEXは使わないようにしていましたが、そんなことは無く「INDEX(RANGE SCAN)」してくれます。私の勘違いだ […]

SQL

FETCH FIRST

Oracle12cから追加されたFETCH FIRST N ROWS ONLYを紹介します。 Oracle11以前はORDER BY でソートした結果の1件目だけを抽出するというようなことをする場合、内部ビューを使う必要 […]