基本的なセットアップについては、次の行に沿って何かを提案します。
CREATE TABLE A0 (
a0_pk NUMBER
, a0_date DATE
, a0_interval VARCHAR2(20)
, a0_value NUMBER
, CONSTRAINT c_a0_pk PRIMARY KEY (a0_pk)
, CONSTRAINT c_a0_date CHECK ( a0_date >= TO_DATE ( '01.01.2013 00:00:00', 'DD.MM.YYYY HH24:MI:SS' ) AND a0_date < TO_DATE ( '01.01.2014 00:00:00', 'DD.MM.YYYY HH24:MI:SS' ) )
, CONSTRAINT c_a0_value CHECK ( a0_value BETWEEN 0 AND 100 )
);
BEGIN
FOR i IN 1 .. 100 LOOP
INSERT
INTO A0
( a0_pk
, a0_date
, a0_value
)
VALUES
( i
, TO_DATE ( '01.01.2013 00:00:00', 'DD.MM.YYYY HH24:MI:SS' ) + 365 * DBMS_RANDOM.VALUE
, TO_CHAR ( a0_date, 'YYYYMMDD' )
, FLOOR ( DBMS_RANDOM.VALUE ( 0, 101 ) )
)
;
END LOOP;
END;
UPDATE A0
SET a0_interval = TO_CHAR ( a0_date, 'YYYYMMDD' )
;
COMMIT;
ALTER TABLE A0 ADD CONSTRAINT c_a0_interval CHECK ( TO_CHAR ( a0_date, 'YYYYMMDD' ) = a0_interval );
CONSTRAINT
dbms によって強制される制約が必要ない場合は、テーブル作成ステートメントの pk 制約以外の行を省略できることに注意してください。テーブルの作成後、残りのすべての列は次のようなステートメントで作成できます
ALTER TABLE A0 ADD ( A0_COL_001 NUMBER );
列数が 1000 であるため、ステートメントのリストは短い perl スクリプトで生成するのが最適です。または、スプレッドシートに 3 つの列を入力します。列 1 は、文字列a
、列 3の 1000 個のインスタンスをb
それぞれ保持します。column2 に 0 から 999 までの数字を入力し、先頭にゼロを付けて 3 桁にフォーマットします。結果を csv ファイルとして保存します。csvセパレータとして選択したと仮定して、それぞれをa;
とALTER TABLE A0 ADD ( A0_COL_
に置き換えてそのファイルを編集します。;b
NUMBER );
;