ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文

  メンテナンス 前画面に戻る

対象スレッド 件名: 一時表
名前: lightbox
処理選択
パスワード

件名 一時表
名前 lightbox
コメント
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 秒が経つと、データはクリアされます