ラベル DB の投稿を表示しています。 すべての投稿を表示
ラベル DB の投稿を表示しています。 すべての投稿を表示

2012年6月5日火曜日

Triggerでシーケンス値を自動採番


以下のようなテーブルが存在したとする。
テーブル名 : [MST_Magazine]
フィールド

項目名備考
ID数値PK 連番でデータを格納
Publisher_ID数値
Name文字列



このようなテーブルではIDはシーケンスでの採番となる。
しかし、OracleではSQLServerのように、型として自動採番の型が存在しない。

そこで、トリガを用いて自動採番を行う。

CREATE OR REPLACE TRIGGER TRG_MST_Magazine_ID
BEFORE Insert
ON MST_Magazine
FOR EACH ROW
BEGIN
    IF :NEW.ID  IS NULL THEN
        SELECT SEQ_Magazine_ID.NEXTVAL INTO :NEW.ID FROM DUAL;
    END IF;
END;

上記のトリガは、MST_MagazineテーブルへのInsert時に起動し、
InsertされたMST_Magazine.ID項目がNULLの場合、SEQ_Magazine_ID.Nextvalの値を使用する。

これにより、IDを指定せずMST_MagazineテーブルへのInsertを行った場合は自動で数値が採番される。

2010年6月10日木曜日

Windows7にOracle10g R2 を入れてみた


以前Windows7にOracle10gR1を入れようとして発狂したエントリ を書きましたが、
R2ならいけるよーとのコメントをいただいたので、今更やってみました。


とりあえずそのままインストールしようとして、
Versionが対応外なんですけ?的なエラー
じゃあ、Varsionをごまかせ☆と、setup.exeのプロパティから互換性タブの値をチョロッと編集。
ここはR1での作業と一緒。
さてさてどうなることか。



あれ?なんかインストールできましたけど?
あれ?DBにも接続できましたけど?

わおwwwwwwwwww

あの苦労は一体・・・
oracle10g用のSQLをSQLServer2005用にコンバージョンした苦労って・・・

とりあえず、select * from PRODUCT_COMPONENT_VERSIONして取得した結果

Oracle Database 10g Enterprise Edition
10.2.0.3.0
Prod

うん入ってるね。
これで幸せ。

2009年12月3日木曜日

Windows7 + oracle 10g R1 試行手順

!!! これは10g R1に関するエントリです。10g R2はこちら !!!


アクセス解析見てると、「oracle10g」を「Windows7」にぶち込みたい方が結構いるみたいですね。
俺が試したインストール手順をとりあえず書いときます。
まぁ失敗したんだけどねwwwwwww
書いてたら、詳しい人が解決策を教えてくれるかもという、淡い期待です。


「setup.exe」をそのまま起動すると、
「お前のWindowsのVerは対応してないんですけどwwww」
っていってきます。

じゃ、誤魔化しちゃいましょう。

「setup.exe」のプロパティを開きます。
「互換性」ってタブが存在するかと思います。
「互換モード」の「互換モードでこのプログラムを実行する」にチェックつけてやってください。

とりあえずこれでOk

あとは、「setup.exe」を起動するとちゃんとインストーラが動くはず。

こっから先のインストール手順に関しては他のサイトで、
山のように解説してくださってるんで割愛します。

で、問題が発生するのは、一番最後。
「Oracle Database Configuration Assistant」とやらのインストール時です。
これが「アクセス権ナスwwwwwww涙目wwwwww」(12546[アクセス権なし])ってエラーをはきます。

ここで積む。

続行すると、
「「Oracle Database Configuration Assistant」のインストールに失敗したけど、必須じゃないからよくね?」
的な文章がむにゅっとポップアップで出てきます。

あれ?そうなの?びっくりさせないでよねwwwww
とか思って、とりあえずSQL*Plus起動すっかなーと、
コマンドプロンプトで[sqlplus]って打ち込むと、
「アクセス権ナスwwwwwww涙目wwwwww」(12546[アクセス権なし])ってエラーをはきます。

だめじゃねーかwwwwwwwwwwwww俺涙目wwwwwwwwwwww
ってなるかと思います。

エラーコードは同一なことから見ても、おそらく原因は同じと思われます。
アクセス権がどのアクセス権なのかもサッパリです。
詳しい人ボスケテ