`

根据excel表格生成建表语句及注释

 
阅读更多

应用场景:有时需要根据第三方数据索要方提供的表结构,提供其要求表格的数据。提供时只给出excel表。如:

 

解决思路:

1、excel的vb编码,导出。

2、百度了一下,提供了另一种思路,写存储过程来实现。

新建表把表结构说明都写入表中,写过程,按每个表分组,变量表的字段描述,做字符拼接。

存储到clob字段中。

 

自己的实现例子:

建表:

create table wanda_midtable_col(
   xh number,
   tablename varchar2(20),
   colname varchar2(20),
   colcomment varchar2(500),
   coltype varchar2(100),
   isnull varchar2(10),
   isprimarykey varchar2(10),
   codetype varchar(500),
   coldesc varchar2(500),
   writedesc varchar2(500),
   bz varchar2(500)
);
create table wanda_OUTString
(
Tname        varchar2(50),
OUTString    clob, --建表语句
OUTSTRING2   clob, --注释语句
createddate  date
);

 编写过程:

create or replace procedure pro_exltosql_mintables is
  OUTString       varchar2(30000);
  OUTString2       varchar2(30000);
  v_tabledesc     varchar2(500);
  v_index         number(10);
  cursor c_tables is
    select distinct a.tablename from wanda_midtable_col a;
  cursor c_tcolms(pi_tname varchar2) is
    select * from wanda_midtable_col a where a.tablename=pi_tname order by a.xh;
begin
  begin
    for v_tname in c_tables loop
      OUTString := '';
      outstring2 := '';
      v_tabledesc := '';
      for v_tcolms in c_tcolms(v_tname.tablename) loop
        OUTString :=OUTString||'COMMENT ON COLUMN '||v_tcolms.tablename||'.'||v_tcolms.colname||' is '''||v_tcolms.colcomment||''';'||chr(10);
        select outstring2||' '||v_tcolms.colname||'   '||v_tcolms.coltype||' '||decode(upper(v_tcolms.isnull),'N','NOT NULL','') ||','||chr(10)
          into outstring2
          from dual;
        if upper(v_tcolms.isprimarykey) = 'Y' then
          null;
        end if;
      end loop;
      --获取中间表的表说明
      select a.table_desc
        into v_tabledesc
        from wanda_sjqx_table a
       where a.table_name = v_tname.tablename;
      OUTString := 'COMMENT ON TABLE '||v_tname.tablename||' is '''||v_tabledesc||''';'||chr(10)||OUTString;
      outstring2:='create table '||v_tname.tablename||''||chr(10)||'('||outstring2||');';
      --create table去掉最后的逗号
      --最后一个逗号的下标
      select instr(outstring2,',',-1,1) into v_index from dual;
      outstring2:= substr(outstring2,1,v_index-1)||substr(outstring2,v_index+1,length(outstring2)-v_index);
      insert into wanda_OUTString(Tname,OUTString,OUTSTRING2,createddate)
      values(v_tname.tablename,OUTString,OUTSTRING2,sysdate);
      commit;
    end loop;
  exception
    when others then
      null;
  end;
end pro_exltosql_mintables;

 

得到:

COMMENT ON TABLE IC08 is '历史档案审核信息';
COMMENT ON COLUMN IC08.AAZ261 is '历史档案审核ID';
COMMENT ON COLUMN IC08.AAE140 is '险种类型';
COMMENT ON COLUMN IC08.AAC001 is '人员ID';
COMMENT ON COLUMN IC08.AAB001 is '单位ID';
COMMENT ON COLUMN IC08.AAC058 is '证件类型';
COMMENT ON COLUMN IC08.AAC147 is '证件号码';
COMMENT ON COLUMN IC08.AAC003 is '姓名';
COMMENT ON COLUMN IC08.AAC004 is '性别';
COMMENT ON COLUMN IC08.AAC006 is '出生日期';
....

 

create table IC08
( AAZ261   NUMBER(16) NOT NULL,
 AAE140   VARCHAR2(6) NOT NULL,
 AAC001   NUMBER(20) NOT NULL,
 AAB001   NUMBER(20) ,
 AAC058   VARCHAR2(3) NOT NULL,
 AAC147   VARCHAR2(20) NOT NULL,
 AAC003   VARCHAR2(50) NOT NULL,
 AAC004   VARCHAR2(1) NOT NULL,
 AAC006   DATE NOT NULL,
 AAC005   VARCHAR2(3) ,
 AAC024   VARCHAR2(3) ,
....

 
 

  • 大小: 14.9 KB
分享到:
评论

相关推荐

    根据Excel生成建表语句工具.zip

    标题中的“根据Excel生成建表语句工具.zip”指出,这是一个工具包,主要用于将Excel表格的数据结构转换为数据库建表语句。这个工具可能是为了帮助数据库管理员或开发人员快速、批量地创建数据库表结构,避免手动编写...

    根据Excel生成建表语句源码.rar

    "根据Excel生成建表语句源码.rar"这个压缩包文件提供了一种解决方案,它包含了一段用于自动化生成SQL建表语句的代码。 首先,我们要理解这个过程的基本原理。Excel文件通常包含多个工作表,每个工作表可以被视为一...

    Excel生成MYSQL建表语句

    标题中的“Excel生成MYSQL建表语句”是指利用JAVA编程技术,通过读取预先设计好的Excel模板,自动生成对应的MySQL数据库建表语句的过程。这个过程通常涉及到数据处理、文件读写以及数据库操作等核心技能。 首先,让...

    excel2003 生成oracle 建表语句

    标题"excel2003 生成oracle 建表语句"涉及到一个实用工具,它允许用户利用Microsoft Excel 2003来创建Oracle数据库的建表语句。这个工具基于Excel的宏功能,使得非编程背景的用户也能相对轻松地生成SQL脚本,这对于...

    Excel根据表格,批量生成sqlserver语句 ,生成建表语句,自行到数据库中执行

    标题提到的“Excel根据表格,批量生成sqlserver语句,生成建表语句,自行到数据库中执行”,就是一种利用Excel宏自动化生成SQL Server建表语句的方法。这种方法适用于已有数据结构清晰的Excel表格,通过特定的规则...

    Excel生成建表语句SQL Server.xls

    通过excel创建n个sheet页,每个sheet页的内容为数据库表见表字段,一键生成数据库见表语句

    hive根据excel批量生成建表语句

    根据excel中表的字段清单,批量生成建表语句; 打开工具,按格式填入表名、字段、类型等内容,点击“视图”-->“宏”-->“查看宏”-->“执行”

    sql同步自动生成hive建表语句及注释

    基于oracle或者mysql生成自动建表同步源数据表结构及注释

    python自动生成sql建表语句

    首先,从标题"python自动生成sql建表语句"我们可以了解到,我们要讨论的是如何用Python编写程序,以读取某种数据源(例如Excel文件),然后根据数据结构自动生成适用于不同数据库系统的SQL创建表的语句,如Oracle、...

    通过xlrd读取excel生成oracle的建表语句

    本话题主要关注如何利用Python的xlrd库来读取Excel文件,并根据其中的数据生成适用于Oracle数据库的建表语句。 首先,xlrd是一个Python库,专门用于读取Excel文件。它支持多种Excel文件格式,包括.xls和.xlsx,使得...

    excel自动生成MySQL与oracle创建表语句

    支持Mysql与oracle自动在excel中生成创建sql语句,非常强大,如果想使用sqlserver看我上一资源

    根据javabean生成建表语句

    根据javabean生成建表语句

    excel自动生成创建表语句mysql,sqlserver.xlsm

    excel中支持mysql(主键自增),sqlserver自动创建表语句,方便文档留存查看。oracle也写了宏指令,用office打开文档,按alt+F11自行改宏代码。

    生成hive建表语句

    在生成Hive建表语句时,需要根据实际需求选择合适的字段类型、分区策略、存储格式等,确保数据的有效存储和高效查询。同时,建表语句的设计应考虑数据的扩展性和维护性,以适应业务的变化和发展。在实际工作中,我们...

    Excel自动生成sql创建表语句

    支持sqlserver与oracle自动生成sql创建表语句,一键自动生成,非常强大。

    oracle到mysql建表语句迁移

    oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本

    excel生成建表SQl

    "excel生成建表SQL"这个主题涉及到将Excel中的数据转换为创建数据库表的SQL语句。在这个过程中,我们可以利用Excel的固定格式来定义表的字段、属性和约束,比如主键、索引、默认值以及是否允许为空等关键要素。 ...

    JAVA读取Excel,建库建表,并生成java实体

    总结,Java读取Excel并进行数据库建库建表及生成Java实体的过程涉及了Apache POI库的使用、数据库操作和源代码生成。理解这些步骤可以帮助你有效地处理类似的任务,提高开发效率。在实际应用中,你还需要考虑错误...

    kettle批量导出mysql建表语句

    - 如果目标是生成可以直接在MySQL命令行中执行的.source文件,需要对输出的建表语句进行一些调整,例如去掉注释和不必要的空格。 - 在Kettle中,可以使用“脚本步骤”来处理这些文本,例如使用正则表达式替换。 -...

    SQL SERVER导出所有建表语句存储过程

    可以支持导出单表的建表语句,也可以支持单库所有建表语句的导出以及同服务器跨库建表语句的导出。

Global site tag (gtag.js) - Google Analytics