通用导入表AA - ZZ创建

时间:2012-09-01 03:59:31

标签: sql oracle

我需要一个通用样式导入表。将来可能会添加/更改每列中使用的数据。所以我想创建一个宽表,只记录每列代表的内容,然后通过一个视图查询表,我可以提供有意义的列名。

除了粘贴600多列之外,还有一种方法来创建这种类型的表吗?也许还有比这种方法更好用的功能。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以编写一个构建create table字符串的PL / SQL脚本,然后使用execute immediate语句执行它。您确定数据库设计是否正确? 600列听起来像标准化还没有完成。

declare
    l_sql     varchar2(32000);
begin
     l_sql := 'create table mytable (';
     for i in 1 .. 600 loop
           l_sql := l_sql || ' col'||i||' char(10)';
           if i<600 then
              l_sql := l_sql || ',';
           end if;
     end loop;
     l_sql := l_sql || ')';
     execute immediate l_sql;
end;
/