-6

2000 列を超えるオラクルでテーブルを作成することは可能です。列名は何でもいいし、型も何でもいい.私はそれを書く方法を知らない

4

1 に答える 1

15

いいえ、できません。Oracle では、テーブルごとに 1000 列の制限があります

そもそも、なぜ 2000 列のテーブルを作成したいのでしょうか? これは、スキーマが何らかの正規化を真剣に必要としていたことを強く意味します。解決しようとしているビジネス上の問題を説明していただければ、より適切な解決策をほぼ確実に提案できます。

適切な正規化に違反することが本当に決心していて、ループで列を生成したい場合は、次のようなことができます

DECLARE
  l_sql_stmt varchar2(1000);
BEGIN
  l_sql_stmt := 'CREATE TABLE violation_of_normalization( col1 number )';
  EXECUTE IMMEDIATE l_sql_stmt;

  FOR i IN 2 .. 900
  LOOP
    l_sql_stmt := 'ALTER TABLE violation_of_normalization ADD( col' || i || ' number )';
    EXECUTE IMMEDIATE l_sql_stmt;
  END LOOP;
END;

このようなことをするのは非常に悪い考えですが、確かに可能です。

于 2012-11-05T17:29:16.160 に答える