![]()
SQLクリニック(7) Page
1/3PL/SQLでBLOBデータを自由自在に入出力
株式会社インサイトテクノロジー
林 優
2005/8/26
本連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基本構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。本連載は、著名なメールマガジン「おら! オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーのコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
|
今回は、非常に大きなデータを扱う方法を紹介しましょう。大きなデータを格納する際には、LOB(Large Object)という非構造化データ(バイナリデータや大量のテキストデータ)を使用します。
Oracleデータベースに格納できるLOBには、以下の4種類が存在します。
| LOBの種類 | 説明 |
| BFILE | データをデータベース内に格納せず、OS上のファイルシステムに記録します |
| BLOB | 音声・画像などのバイナリデータをデータベース内部に格納します |
| CLOB | 大量の文字列データをデータベース内部に格納します(シングルバイト・キャラクタまたはマルチバイト・キャラクタを含む) |
| NCLOB | 大量の文字列データをデータベース内部に格納します(Unicodeキャラクタを含む) |
| 表1 Oracleデータベースに格納できるLOBの種類 | |
今回は、BLOBについてSQL文でのアクセス方法などを紹介します。BLOBは大量のバイナリデータを格納することができるデータ型です。Pro*CやJavaなどのアプリケーション・プログラムからバイナリデータを読み込んで格納する方法もありますが、ここではPL/SQLで実装する方法を簡単な例で解説します。
本記事で解説する例題のサンプルソースを以下からダウンロードできます。アーカイブファイルは3種類の文字コード(SJIS、EUC、UTF-8)を用意してありますので、必要な方を利用してください。
| Samples | |
・ |
atmarkit_7_sjis.zip(SJIS用) |
・ |
atmarkit_7_euc.zip(EUC用) |
・ |
atmarkit_7_utf-8.zip(UTF-8用) |
内容物は、以下のとおりです。
- create_ddl.sql
サンプル用のオブジェクト作成スクリプト - atmarkit_7_1.sql
BLOBデータの格納サンプル - atmarkit_7_2.sql
BLOBデータの出力サンプル
これらのサンプルコードは、Oracle Database 10.1.0.4で動作を確認しています。
| 【お知らせ】 記事公開時サンプルコードでは、一部にVARCHAR型が使用されていました。VARCHARデータ型はVARCHAR2データ型と同じ意味で使用されていますが、今後、VARCHARデータ型は、異なる比較セマンティクスで比較される別の可変長文字列のデータ型に変更される予定です。このため、掲載時のサンプルコードのうち、VARCHAR型を使っている部分について、VARCHAR2型に書き換えたうえで、修正版として公開して公開しています(2008/06/11)。 |
1 set serveroutput on |
| リスト1 BLOBデータを格納するPL/SQLサンプル (表示の都合で改行している個所があります。コードはlist7_1から参照できます) |
それでは、次ページで順を追って解説していきましょう。(次ページへ続く)
| 1/3 |
| Index | |
| 連載 SQLクリニック(7) PL/SQLでBLOBデータを自由自在に入出力 |
|
| Page 1 ・Oracleに格納できるLOBの種類 ・BLOBデータを格納するサンプル |
|
| Page 2 ・BLOBデータを格納するサンプルの解説 |
|
| Page 3 ・BLOBデータを出力するサンプル ・BLOBデータを出力するサンプルの解説 |
|
| SQLクリニック |
ホワイトペーパー(TechTargetジャパン)
Database Expert フォーラム 新着記事
- Officeユーザーにこそ? CouchDBお手軽アプリ開発 (2010/2/8)
Excelレガシーの置き換えはCouchDBで?! CouchAppを使って「ドキュメント指向データベース」 を手軽に体験しよう - 不正行為を未然に防ぐログの分析と活用 (2010/2/1)
あの事件も、監査ログが活用できていれば防げました。不正を許さないためには、取るだけでなく活用方法を知るべきです - まずは体験! インストールから中身確認まで (2010/1/28)
Oracleは大規模システム専用で難しい、というのは大きな間違い! あなたのそばにあるWindowsで、そのチカラを身をもって体験してみよう - アプライアンスにOSSにXML、2009年のその先は? (2010/1/25)
未来を展望するにはまず過去から学ぶべし。商用DBにOSS、NoSQLなど、激動の2009年データベース事情を振り返ってみます
|
|
@IT 新着記事
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | 企業の仮想化に足りない“発想”とは? 仮想化運用管理のキモは意外なところに! New! |
| ◆ | 操作もマニュアルも分かりやすい! ユーザー視点で開発されたPC管理ツール New! |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |

| ◆ | セキュリティを知り尽くす上野氏が登壇! @ITメールソリューションLive! in Tokyo |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
| ◆ | 世界に通用するストレージの作り方とは? 製品に込めた思いを富士通の開発者に聞く |

| ◆ | OSSで手間も時間も、障害も減った―― 「マピオンの事例」オープンソース活用法 |
| ◆ | 「ノートPCの持ち出し禁止」で大丈夫? 情報漏えいを防ぐ管理手法とインフラは? |
| ◆ | 1日の処理を1秒に――MySQLの達人が語る 「コスト削減」できるチューニング |

| ◆ | ドキュメント作成を自動化して、SEの作業 効率を大幅アップ! Visio 2007の魅力 |
| ◆ | 急速に広がるHyper-Vでのサーバ仮想化 そのベストプラクティスをデルが解説 |
| ◆ | @IT主催セミナーで語られた、「担当者に 求められるセキュリティ対策」をレポート |

| ◆ | @IT「Windows 7」 特設サイトオープン! 最新情報・移行ノウハウを公開しています |






