コメント |
http://winofsql.jp/VA003334/plsql080706180700.htm( 関連ページ : 一時表で加工データを作成 )
@DIV
[[※ 注意1]]
初めて一時表を作成した時点では、その表のメタデータはデータ・ディクショナリに格納されますが、
表データの領域は割り当てられません。
[[※ 注意2]]
表セグメントの領域は、その表に初めてDML操作を実行したときに割り当てられます。
[[※ 注意3]]
一時表の定義は、標準的な表の定義と同じように維持されます。
[[※ 注意4]]
表に含まれる表セグメントとデータは、セッション固有またはトランザクション固有のデータのいずれかになり、
ON COMMITキーワードで指定します。
[[※ 注意5]]
@C:RED(DELETE ROWS)は、トランザクション固有の一時表に対して指定します。
これはデフォルトです。各コミット後に表が切り捨てられます(すべての行が削除されます)。
[[※ 注意6]]
@C:RED(PRESERVE ROWS)は、セッション固有の一時表に対して指定します。
セッション終了時に表が切り捨てられます(すべての行が削除されます)。
@END
@C:red(一時表の定義はすべてのセッションで参照できますが、一時表内のデータを参照できるのは、
そのデータを表に挿入するセッションのみです。複数のクライアントからアクセスされても、
アクセスしたクライアントのデータしか見えません)
以下は、ダンプファイルより取得した表定義を使った一時表の定義です
@DIV
CREATE @C:red(GLOBAL TEMPORARY) TABLE "社員加工元データ"
( "社員コード" VARCHAR2(4),
"氏名" VARCHAR2(50),
"フリガナ" VARCHAR2(50),
"所属" VARCHAR2(4),
"性別" NUMBER(1,0),
"作成日" DATE,
"更新日" DATE,
"給与" [[NUMBER(10,2)]],
"手当" [[NUMBER(8,1)]],
"管理者" VARCHAR2(4),
"生年月日" DATE,
PRIMARY KEY ("社員コード")
) ON COMMIT @C:RED(PRESERVE ROWS)
@END
http://lightbox.matrix.jp/ginpro/patio.cgi?mode=view2&f=249&no=3&type=ref&opt=text-align:left;margin-left:5px;&xml=y(インポートユーティリティで、表定義を取得する)
@DIV
Microsoft の Oracle 用 ODBC ドライバを使用すると、デフォルトで60 秒間接続が継続されるので
処理後接続を閉じるツールを使っても、一時表の内容を見る事ができます
@END
http://lightbox.cocolog-nifty.com/photos/app/oracle_odbc_pool.png
※ 何もアクセスせずに 60 秒が経つと、データはクリアされます
|