CN107943995A - 一种sql查询结果列名及编码自动转换方法 - Google Patents
一种sql查询结果列名及编码自动转换方法 Download PDFInfo
- Publication number
- CN107943995A CN107943995A CN201711260417.1A CN201711260417A CN107943995A CN 107943995 A CN107943995 A CN 107943995A CN 201711260417 A CN201711260417 A CN 201711260417A CN 107943995 A CN107943995 A CN 107943995A
- Authority
- CN
- China
- Prior art keywords
- name
- row
- sql query
- sql
- query result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种SQL查询结果列名及编码自动转换方法,它包括S101:配置源表列展现元数据;S102:获取SQL查询结果列与源表列的对应关系;S103:对SQL查询语句进行改写。本发明取得的有益效果是:整个SQL处理过程中无须人工干预,改变了传统数据可视化针对列展示名和编码转换的硬编码工作模式,减轻了程序开发人员的工作量,避免了转换过程中的人为差错,最终提高了数据可视化的工作效率和工作质量。
Description
技术领域
本发明涉及数据库技术领域,特别是一种SQL查询结果列名及编码自动转换方法。
背景技术
Oracle数据库是一款关系型数据库管理系统,采用SQL(Structured QueryLanguage,结构化查询语言)管理数据。在数据可视化方面,业界重点关注SQL查询结果展示列名、编码字段转换规则等元数据信息,用于查询结果数据的友好展现。
在预设固定场景下的查询,通常采用预先硬编码或者配置表的方式实现结果列名和编码数据内容的转换,此类方法编码或配置工作量较大且灵活度不高。在自定义动态场景下的查询,一般采用在线硬编码的方式实现结果列名和编码数据内容的转换,此类方法需要使用者熟知数据库模型,应用存在一定的局限性。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
有鉴于现有技术的上述缺陷,本发明的目的就是提供一种SQL查询结果列名及编码自动转换方法,能够改变了传统数据可视化针对列展示名和编码转换的硬编码工作模式,减轻了程序开发人员的工作量,避免了转换过程中的人为差错,最终提高了数据可视化的工作效率和工作质量。
本发明的目的是通过这样的技术方案实现的,一种SQL查询结果列名及编码自动转换方法,它包括有:所述方法步骤如下:
S101:配置源表列展现元数据;
S102:获取SQL查询结果列与源表列的对应关系;
S103:对SQL查询语句进行改写。
进一步,所述步骤S102处理流程如下:
S201:创建SQL查询语句对应的视图;
S202:创建数据表及字段依赖视图;
S203:获得视图依赖的源表及字段信息;
S204:创建源表对应的替代表;
S205:将SQL查询语句中的源表表名替换为替代表表名;
S206:创建替换后SQL语句对应的视图;
S207:获得SQL结果字段与源表字段的对应关系。
进一步,所述步骤S101中元数据包括:基础业务系统数据库模型设计中,数据查询可能涉及的源表名、列名、列展示名、编码字段对应的编码转换视图的源表列展现元数据信息。
进一步,所述编码转换视图是指包含编码值、编码名称两个字段的数据库简单视图。
进一步,所述配置表列展现元数据的属性包括表名、列名、列展示名、编码字段标志、编码转换视图。
进一步,步骤S204中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS,获得SQL查询语句对应的视图依赖的源表字段中字段数据长度的最大值v_ref_col_max_len;创建源表对应的替代表。
进一步,替代表的表名宜在源表名的基础上增加后缀_bak,替代表列的数据类型统一为VARCHAR2类型,字段长度从v_ref_col_max_len+1开始,依次增加,步长为1,以确保字段长度的全局唯一性。
进一步,步骤S207中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS中的字段长度data_length属性,找到替换后SQL语句对应的视图结果列与替代表列的对应关系,从而间接得到SQL结果字段与源表字段的对应关系。
进一步,所述步骤103处理流程如下:找到SQL结果字段与源表字段的对应关系,明确SQL结果字段展现名以及编码字段转换视图的基础上,分别使用列别名AS语句、decode函数或者case when语句,完成列展示名及编码数据内容的转换。
由于采用了上述技术方案,本发明具有如下的优点:
(1)在源表列展现元数据配置过程中,完成后续各类查询场景中涉及的源表列展现信息的集中配置,提高了元数据配置工作效率,同时确保了列名及编码展现的一致性;
(2)对SQL查询结果列进行溯源,获得SQL查询结果列与源表列的对应关系,从而自动获取SQL查询结果列的展示名和编码字段对应的编码转换视图;
(3)对SQL查询语句进行改写,获得可友好展现结果的查询语句;
(4)整个SQL处理过程中无须人工干预,改变了传统数据可视化针对列展示名和编码转换的硬编码工作模式,减轻了程序开发人员的工作量,避免了转换过程中的人为差错,最终提高了数据可视化的工作效率和工作质量。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书和权利要求书来实现和获得。
附图说明
本发明的附图说明如下:
图1为本发明的流程示意图。
图2为本发明中获取SQL查询结果列与源表列的对应关系的处理流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
实施例:如图1和图2所示;一种SQL查询结果列名及编码自动转换方法,它包括有:所述方法步骤如下:
S101:配置源表列展现元数据;所述步骤S101中元数据包括有:基础业务系统数据库模型设计文档中,数据查询可能涉及的源表名、列名、列展示名、编码字段对应的编码转换视图的源表列展现元数据信息。
所述编码转换视图是指包含编码值、编码名称两个字段的数据库简单视图。
所述配置表列展现元数据的属性包括表名、列名、列展示名、编码字段标志、编码转换视图。
S102:获取SQL查询结果列与源表列的对应关系;
所述步骤S102处理流程如下:
S201:创建SQL查询语句对应的视图;通过CREATE VIEW…AS SELECT…语句创建SQL查询语句对应的视图。
S202:创建数据表及字段依赖视图(DBA_DEPENDENCY_COLUMNS);
所述步骤S202实施思路如下:
Oracle数据库自带DBA_DEPENDENCIES视图,用于查看存储过程、包、视图等对象依赖的表,但无法获得依赖的表对应的字段信息。结合Oracle 11g的最新特性,创建与DBA_DEPENDENCIES类似的视图DBA_DEPENDENCY_COLUMNS,用于获得数据库相关对象(视图、存储)所依赖的表、视图及其字段信息。
S203:获得视图依赖的源表及字段信息;查询视图DBA_DEPENDENCY_COLUMNS,获得SQL查询语句对应的视图依赖的源表及字段信息。
S204:创建源表对应的替代表;步骤S204中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS,获得SQL查询语句对应的视图依赖的源表字段中字段数据长度的最大值(v_ref_col_max_len);创建源表对应的替代表。
替代表的表名宜在源表名的基础上增加后缀_bak,替代表列的数据类型统一为VARCHAR2类型,字段长度从v_ref_col_max_len+1开始,依次增加,步长为1,以确保字段长度的全局唯一性。
S205:将SQL查询语句中的源表表名替换为替代表表名;使用Oracle数据库中replace函数,完成SQL查询语句文本的替换。
S206:创建替换后SQL语句对应的视图;通过CREATE VIEW…AS SELECT…语句创建替换后SQL查询语句对应的视图。
S207:获得SQL结果字段与源表字段的对应关系。步骤S207中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS中的字段长度(data_length)属性,找到替换后SQL语句对应的视图结果列与替代表列的对应关系,从而间接得到SQL结果字段与源表字段的对应关系。
所述步骤103处理流程如下:找到SQL结果字段与源表字段的对应关系,明确SQL结果字段展现名以及编码字段转换视图的基础上,分别使用列别名AS语句、decode函数或者case when语句,完成列展示名及编码数据内容的转换。
本发明具有的有益效果:
本发明在源表列展现元数据配置过程中,完成后续各类查询场景中涉及的源表列展现信息的集中配置,提高了元数据配置工作效率,同时确保了列名及编码展现的一致性;
然后,对SQL查询结果列进行溯源,获得SQL查询结果列与源表列的对应关系,从而自动获取SQL查询结果列的展示名和编码字段对应的编码转换视图;
最后,对SQL查询语句进行改写,获得可友好展现结果的查询语句。
整个SQL处理过程中无须人工干预,改变了传统数据可视化针对列展示名和编码转换的硬编码工作模式,减轻了程序开发人员的工作量,避免了转换过程中的人为差错,最终提高了数据可视化的工作效率和工作质量。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (9)
1.一种SQL查询结果列名及编码自动转换方法,其特征在于,所述方法步骤如下:
S101:配置源表列展现元数据;
S102:获取SQL查询结果列与源表列的对应关系;
S103:对SQL查询语句进行改写。
2.如权利要求1所述的SQL查询结果列名及编码自动转换方法,其特征在于,所述步骤S102处理流程如下:
S201:创建SQL查询语句对应的视图;
S202:创建数据表及字段依赖视图;
S203:获得视图依赖的源表及字段信息;
S204:创建源表对应的替代表;
S205:将SQL查询语句中的源表表名替换为替代表表名;
S206:创建替换后SQL语句对应的视图;
S207:获得SQL结果字段与源表字段的对应关系。
3.如权利要求1所述的SQL查询结果列名及编码自动转换方法,其特征在于,所述步骤S101中元数据包括:基础业务系统数据库模型设计中,数据查询可能涉及的源表名、列名、列展示名、编码字段对应的编码转换视图的源表列展现元数据信息。
4.如权利要求3所述的SQL查询结果列名及编码自动转换方法,其特征在于,所述编码转换视图是指包含编码值、编码名称两个字段的数据库简单视图。
5.如权利要求1所述的SQL查询结果列名及编码自动转换方法,其特征在于,所述配置表列展现元数据的属性包括表名、列名、列展示名、编码字段标志、编码转换视图。
6.如权利要求2所述的SQL查询结果列名及编码自动转换方法,其特征在于,步骤S204中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS,获得SQL查询语句对应的视图依赖的源表字段中字段数据长度的最大值v_ref_col_max_len;创建源表对应的替代表。
7.如权利要求6所述的SQL查询结果列名及编码自动转换方法,其特征在于,替代表的表名宜在源表名的基础上增加后缀_bak,替代表列的数据类型统一为VARCHAR2类型,字段长度从v_ref_col_max_len+1开始,依次增加,步长为1,以确保字段长度的全局唯一性。
8.如权利要求1所述的SQL查询结果列名及编码自动转换方法,其特征在于,步骤S207中的处理流程如下:通过查询Oracle数据库系统视图USER_TAB_COLUMNS中的字段长度data_length属性,找到替换后SQL语句对应的视图结果列与替代表列的对应关系,从而间接得到SQL结果字段与源表字段的对应关系。
9.如权利要求1所述的SQL查询结果列名及编码自动转换方法,其特征在于,所述步骤103处理流程如下:找到SQL结果字段与源表字段的对应关系,明确SQL结果字段展现名以及编码字段转换视图的基础上,分别使用列别名AS语句、decode函数或者case when语句,完成列展示名及编码数据内容的转换。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017108677517 | 2017-09-22 | ||
CN201710867751 | 2017-09-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107943995A true CN107943995A (zh) | 2018-04-20 |
CN107943995B CN107943995B (zh) | 2022-03-08 |
Family
ID=61948601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711260417.1A Active CN107943995B (zh) | 2017-09-22 | 2017-12-04 | 一种sql查询结果列名及编码自动转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943995B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017283A (zh) * | 2022-05-31 | 2022-09-06 | 阿里巴巴(中国)有限公司 | 自然语言处理模型、方法、电子设备及计算机存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106766A1 (en) * | 2004-11-12 | 2006-05-18 | International Business Machines Corporation | Method, system and program product for rewriting structured query language (SQL) statements |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
US20100030733A1 (en) * | 2008-08-01 | 2010-02-04 | Draughn Jr Alphonza | Transforming SQL Queries with Table Subqueries |
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN104756082A (zh) * | 2012-10-16 | 2015-07-01 | 微软公司 | 用于数据库应用的智能错误恢复 |
EP2916240A1 (en) * | 2012-11-01 | 2015-09-09 | Tao, Guangyi | Database storage system based on compact disk and method using the system |
WO2016118776A1 (en) * | 2015-01-21 | 2016-07-28 | CloudLeaf, Inc. | Systems, methods and devices for asset status determination |
CN106055582A (zh) * | 2016-05-20 | 2016-10-26 | 中国农业银行股份有限公司 | 一种替换数据库的表名的方法及装置 |
CN106874429A (zh) * | 2017-01-23 | 2017-06-20 | 南威软件股份有限公司 | 一种标准sql转换成全文检索标准查询的方法 |
CN107103007A (zh) * | 2016-02-23 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种sql代码转换方法及装置 |
-
2017
- 2017-12-04 CN CN201711260417.1A patent/CN107943995B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106766A1 (en) * | 2004-11-12 | 2006-05-18 | International Business Machines Corporation | Method, system and program product for rewriting structured query language (SQL) statements |
US20100030733A1 (en) * | 2008-08-01 | 2010-02-04 | Draughn Jr Alphonza | Transforming SQL Queries with Table Subqueries |
CN101788992A (zh) * | 2009-05-06 | 2010-07-28 | 厦门东南融通系统工程有限公司 | 一种数据库查询语句的转换方法和转换系统 |
CN101561817A (zh) * | 2009-06-02 | 2009-10-21 | 天津大学 | 一种XQuery到SQL查询语言的转换算法及关系数据的查询方法 |
CN104756082A (zh) * | 2012-10-16 | 2015-07-01 | 微软公司 | 用于数据库应用的智能错误恢复 |
EP2916240A1 (en) * | 2012-11-01 | 2015-09-09 | Tao, Guangyi | Database storage system based on compact disk and method using the system |
WO2016118776A1 (en) * | 2015-01-21 | 2016-07-28 | CloudLeaf, Inc. | Systems, methods and devices for asset status determination |
CN107103007A (zh) * | 2016-02-23 | 2017-08-29 | 阿里巴巴集团控股有限公司 | 一种sql代码转换方法及装置 |
CN106055582A (zh) * | 2016-05-20 | 2016-10-26 | 中国农业银行股份有限公司 | 一种替换数据库的表名的方法及装置 |
CN106874429A (zh) * | 2017-01-23 | 2017-06-20 | 南威软件股份有限公司 | 一种标准sql转换成全文检索标准查询的方法 |
Non-Patent Citations (2)
Title |
---|
GUOLIANG LI 等: "Supporting Search-As-You-Type Using SQL in Databases", 《 IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING ( VOLUME: 25, ISSUE: 2, FEB. 2013)》 * |
车建华: "基于视图的查询重写", 《燕山大学学报》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115017283A (zh) * | 2022-05-31 | 2022-09-06 | 阿里巴巴(中国)有限公司 | 自然语言处理模型、方法、电子设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107943995B (zh) | 2022-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107291948B (zh) | 一种分布式newSQL数据库的访问方法 | |
JP4785833B2 (ja) | 永続的でユーザアクセス可能なビットマップ値を有するデータベース管理システム | |
CN100468402C (zh) | 一种数据存储及查询方法 | |
CN104866497B (zh) | 分布式文件系统列式存储的元数据更新方法、装置、主机 | |
CN103412868B (zh) | 文书生成方法及装置 | |
CN102819609B (zh) | 一种持久化数据模型建模方法 | |
JP2017201547A (ja) | 自動レポート生成方法 | |
CN111078702B (zh) | 一种sql语句分类管理及统一查询方法和装置 | |
CN109582831B (zh) | 一种支持非结构化数据存储与查询的图数据库管理系统 | |
CN106484785B (zh) | 一种高效的自动匹配数据字段映射的方法 | |
CN110597851B (zh) | 一种基于大数据的数据处理及报表展示方法 | |
CN103955538A (zh) | HBase数据持久和查询方法及HBase系统 | |
CN105335366A (zh) | 一种sql语句处理方法、装置和服务器 | |
CN109388659B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
CN106815256A (zh) | 建立法律法规条款项关联关系的方法及装置 | |
CN105278961A (zh) | 生成数据库表结构文档的方法及系统 | |
Binnig et al. | SQLScript: Efficiently analyzing big enterprise data in SAP HANA | |
WO2014145230A1 (en) | Object-oriented data infrastructure | |
CN104503751A (zh) | 基于soa的数据源切换方法和基于soa的数据源切换系统 | |
CN106407172A (zh) | 一种基于xml的报表生成方法 | |
CN107943995A (zh) | 一种sql查询结果列名及编码自动转换方法 | |
CN112749157A (zh) | 数据表的处理方法、装置、存储介质和设备 | |
CN103927168A (zh) | 一种面向对象的数据模型持久化的方法及装置 | |
CN111026756A (zh) | 一种表单动态生成和关联查询的方法 | |
US20080301085A1 (en) | Dynamic Database File Column Statistics for Arbitrary Union Combination |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |