私はオラクルに手を出すだけなので、これが基本的なものである場合は簡単にしてください...答えを広範囲に検索しましたが、答えが存在しないか、不可能であるか、検索で正しい用語が使用されていません。
とにかく、日付ディメンション テーブルを作成する DDL を書いています。テーブルの主キーである日付キーを取得しました。これをテーブル内の他のすべての列に伝播して、日付に新しい値が追加されたときにそれらの列のデフォルト値として使用しようとしていますキー列。
これまでに試したことのスニペットを次に示しますが、「ORA-00984: 列はここでは許可されていません」というエラーが表示されました。
CREATE TABLE DATE_DIM
(
DATE_KEY DATE NOT NULL,
CONSTRAINT DATE_KEY_PK PRIMARY KEY (DATE_KEY),
DAY_NUMBER NUMBER(2) DEFAULT TO_NUMBER(TO_CHAR(DATE_KEY,'DD')),
DAY_NAME VARCHAR(36) DEFAULT TO_CHAR(DATE_KEY,'Day')
)
を代入SYSDATE
するとDATE_KEY
、エラーは返されません。しかし、私が概念化しているすべてが実現すると仮定すると、sysdate よりも具体的な日付を挿入する必要があります...そして、わかりやすくするために、他の列は更新できません。
最終的に、このアイデアはさまざまな種類のデータを含む他のテーブルを含むように拡張されるため、スクリプトや Excel などを使用して日付でいっぱいの大きなテーブルを作成しない理由を疑問に思っているかどうかは理解できます。ディメンションは、私が達成しようとしていることを説明する良い例を提供しました。
ご協力いただきありがとうございます。