对于基本设置,我建议以下内容:
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 列应分别包含 1000 个字符串实例,第a
3 列b
。用 0 到 999 的数字填充 column2,并将它们格式化为 3 位数字,前导零。将结果保存为 csv 文件。假设您选择作为 csv 分隔符,分别a;
用ALTER TABLE A0 ADD ( A0_COL_
和替换来编辑该文件。;b
NUMBER );
;