我需要一个通用样式导入表。将来可能会添加/更改每列中使用的数据。所以我想创建一个宽表,只记录每列代表的内容,然后通过一个视图查询表,我可以提供有意义的列名。
除了粘贴600多列之外,还有一种方法来创建这种类型的表吗?也许还有比这种方法更好用的功能。
提前致谢!
答案 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;
/