CN108334321A - 程序代码的展示设备、方法及装置 - Google Patents
程序代码的展示设备、方法及装置 Download PDFInfo
- Publication number
- CN108334321A CN108334321A CN201710033610.5A CN201710033610A CN108334321A CN 108334321 A CN108334321 A CN 108334321A CN 201710033610 A CN201710033610 A CN 201710033610A CN 108334321 A CN108334321 A CN 108334321A
- Authority
- CN
- China
- Prior art keywords
- program code
- nested structure
- hierarchical
- sql
- code
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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/242—Query formulation
- G06F16/2433—Query languages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种程序代码的展示设备、方法及装置。其中,该方法包括:获取程序代码,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行;采用可视化图形结构对程序代码进行展示,其中,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系。本发明解决了相关技术中对于复杂SQL语句的开发与维护的复杂度较高、难度较大的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种程序代码的展示设备、方法及装置。
背景技术
结构化查询语言(Structured Query Language,简称SQL),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;
SQL属于高级的非过程化编程语言,允许用户在高层数据结构上工作。SQL不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。另外,鉴于SQL语句可以嵌套,这使其具有极大的灵活性和强大的功能。
SQL可以包括以下6个部分:
(1)数据查询语言(Data Query Language,简称为DQL),其语句又被称为“数据检索语句:,用以从表中获得数据,确定数据如何在应用程序中提供。保留字SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字可以包括:WHERE、ORDER BY、GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
(2)数据操作语言(Data Manipulation Language,简称为DML),其语句可以包括:动词INSERT,UPDATE和DELETE,其分别应用于添加、修改和删除表中的行,因而,又称为动作查询语言。
(3)事务处理语言(Transaction Process Language,简称为TPL),其语句能够确保被DML语句影响的表的所有行及时得以更新,其中,TPL语句可以包括:BEGINTRANSACTION、COMMIT和ROLLBACK。
(4)数据控制语言(Data Control Language,简称为DCL),其语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问,特定RDBMS可以采用GRANT或REVOKE来控制对表单各列的访问。
(5)数据定义语言(Data Definition Language,简称为DDL),其语句可以包括:动词CREATE和DROP,分别用于在数据库中创建新表(CREAT TABLE)和删除表(DROP TABLE)以及为表加入索引等。DDL包括许多与从数据库目录中获得数据有关的保留字,其也属于动作查询的一部分。
(6)指针控制语言(Cursor Control Language,简称为CCL),其语句,像DECLARECURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
用户自定义函数(User Defined Function,简称为UDF)是一种有序的T-SQL集合,能够预先优化和编译,并且作为一个单元来调用,并且UDF支持多种不同的返回值,也具有更多的限制。
UDF的存储过程可以传入参数,以参数的方式得到返回值,其返回值只能是整型,作为执行成功是否的标志,而不是数据;当然,也可以返回结果集,但是已经是最后的结果,无法继续在查询中使用。然而,UDF使用返回值可以返回任何大多数的SQL类型,从而取代了输出参数的概念。
相关技术中在数据处理分析工作中,经常会采用编写SQL语句的方式来处理数据,而SQL语句基本上可以满足大多数的数据处理场景。考虑到业务需求的复杂性,在通常情况下,SQL语句自身的复杂度也会随之上升,由此造成上百行甚至几百行的SQL语句也极为常见。然而,这种复杂度较高的SQL语句在开发、维护、修改以及扩展等多个方面都存在较大困难,尽管存在致力于SQL编辑的IDE工具,但是却仍然无法解决SQL开发与维护的实现复杂度较高的问题。
SQL语句通常都会被设置在特定的数据库或者是分布式数据仓库中运行,因此,对于不同的数据库管理平台而言,其所支持的SQL语法存在差异。
Orace Database,又名Oracle RDBMS,或简称Oracle,其为甲骨文公司研发的一款关系数据库管理系统。Oracle是一款在数据库领域一直处于领先地位的产品,可以说Oracle数据库系统是目前世界上主流的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。而且,Oracle是一种高效率、可靠性强、适应高吞吐量的数据库解决方案。ORACLE目前不仅支持所有SQL标准语法,同时还提供自身独有的SQL语法,例如:典型的关联语法。
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--SQL进行数据库管理。由于MySQL是开放源代码的,因此任何人都可以在通用性公开许可(General Public License,简称为GPL)下对源代码进行下载并根据个性化需要对其进行修改。MySQL因其速度、可靠性和适应性而备受关注。目前MySQL的最新版本同样已支持全部SQL标准语法。
然而,需要指出的是,上述数据库管理系统存在如下缺陷:
(1)缺乏针对复杂SQL结构的分析能力,从而造成复杂SQL的整体脉络结构在理解方面存在相当大的困难。
(2)缺乏快速定位SQL层次和内核的能力;如上所述,由于SQL语句的展现顺序与运行顺序基本相反,因此,如果无法快速定位复杂SQL的层级以及内核,则无法快速地理解并掌握SQL的业务逻辑,从而难以提高数据库维护的效率。
(3)缺乏在可视化设计模式与代码编辑模式之间的即时切换功能,由此造成在对多达上百行的复杂SQL语句进行编辑时,无法提高SQL宏观观察能力。
综上所述,尽管相关技术中提供的上述数据库管理系统能够在一定程度上提供类似于视图编辑器的管理工具,然而,目前无论是商业上还是开源领域都无法真正实现SQL可视化,进而无法降低复杂SQL语句的开发与维护的难度。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种程序代码的展示设备、方法及装置,以至少解决相关技术中对于复杂SQL语句的开发与维护的复杂度较高、难度较大的技术问题。
根据本发明实施例的一个方面,提供了一种程序代码的展示设备,包括:
处理器,用于获取程序代码,并按照可视化图形结构对程序代码的展示进行配置,得到待显示页面,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系;显示器,用于对待显示页面进行展示。
可选地,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
可选地,处理器还用于在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
可选地,处理器还用于通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;以及当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
可选地,处理器还用于按照以下方式之一导出第一在线编辑模式对应的显示页面:按照预设格式的图片导出显示页面;按照预设格式的超链接导出显示页面;按照预设格式的代码文本导出显示页面。
可选地,处理器还用于获取添加注释标签的位置信息;以及根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
可选地,处理器还用于在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;以及接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
根据本发明实施例的另一方面,还提供了一种程序代码的展示方法,包括:
获取程序代码,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行;采用可视化图形结构对程序代码进行展示,其中,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系。
可选地,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
可选地,在采用可视化图形结构对程序代码进行展示之后,还包括:在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
可选地,在接收第一输入信息之后,还包括:通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
可选地,在接收第一输入信息之后,还包括:按照以下方式之一导出第一在线编辑模式对应的显示页面:按照预设格式的图片导出显示页面;按照预设格式的超链接导出显示页面;按照预设格式的代码文本导出显示页面。
可选地,在采用可视化图形结构对程序代码进行展示之后,还包括:获取添加注释标签的位置信息;根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
可选地,在采用可视化图形结构对程序代码进行展示之后,还包括:在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
根据本发明实施例的又一方面,还提供了一种程序代码的展示装置,包括:
第一获取模块,用于获取程序代码,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行;展示模块,用于采用可视化图形结构对程序代码进行展示,其中,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系。
可选地,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
可选地,上述装置还包括:第一接收模块,用于在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
可选地,上述装置还包括:解析模块,用于通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;提示模块,用于当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
可选地,上述装置还包括:导出模块,用于按照以下方式之一导出第一在线编辑模式对应的显示页面:按照预设格式的图片导出显示页面;按照预设格式的超链接导出显示页面;按照预设格式的代码文本导出显示页面。
可选地,上述装置还包括:第二获取模块,用于获取添加注释标签的位置信息;第二接收模块,用于根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
可选地,上述装置还包括:设置模块,用于在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;第三接收模块,用于接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
在本发明实施例中,采用获取程序代码,该程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行的方式,通过采用在程序代码中的关键字与程序代码的层次结构之间建立关联关系的可视化图形结构对程序代码进行展示,达到了针对复杂的SQL语句,提供一种基于可视化图形结构的在线可视化功能,同时还可以在线编辑,提供编辑模式和设计模式的目的,从而实现了提高开发与维护复杂SQL语句的效率,降低开发与维护的出错率的技术效果,进而解决了相关技术中对于复杂SQL语句的开发与维护的复杂度较高、难度较大的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1示出了一种用于实现程序代码的展示方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本发明优选实施例的矩阵图设计页面的示意图;
图3是根据本发明实施例的程序代码的展示方法的流程图;
图4是根据本发明实施例的程序代码的展示装置的结构框图;
图5是根据本发明优选实施例的程序代码的展示装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
1.程序代码:在本申请中主要是指面向集合的查询语言,每个子查询的结果都是一个集合,由于该查询语言需要针对数据集合进行批处理,因此,需要按照分层嵌套结构进行设置,并从最内层嵌套结构开始运行,产出对应的结果集合,然后基于该结果集合执行逐层向外的查询逻辑,直至将整个分层嵌套结构全部运行完毕。
2.可视化图形结构:主要用于表现按照分层嵌套结构进行设置的程序代码的层次结构与执行机制,其能够在程序代码中的关键字与程序代码的层次结构之间建立关联关系,是一种具有良好的代码属性的图形结构。
3.矩阵图法是一种从多维问题的事件中查找出成对的因素并排列成矩阵图,然后根据矩阵图来分析问题,最终确定关键点的方法。矩阵图法属于一种通过多因素综合思考并探索问题的方法,以便从问题事项中查找出成对的因素群,分别排列成行和列,并最终查找出其间行与列的相关性或相关程度大小的一种方法。
4.表关联,可以分为外连接、内连接和交叉连接,其中,
1)外连接可以进一步划分为:左连接、右连接和完全外连接。
(1)左连接left join或left outer join
左外连接包含left join左表所有行,如果左表中特定行在右表缺少匹配,则结果中对应行右表的部分全部为空(NULL)。
(2)右连接right join或right outer join
右外连接包含right join右表所有行,如果右表中特定行在左表缺少匹配,则结果中对应行左表的部分全部为空(NULL)。
(3)完全外连接full join或full outer join
完全外连接包含full join左右两表中所有的行,如果右表中特定行在左表中缺少匹配,则结果中对应行右表的部分全部为空(NULL);如果左表中特定行在右表中缺少匹配,则结果中对应行左表的部分全部为空(NULL)。
2)内连接join或inner join
inner join为比较运算符,只返回符合条件的行。
3)交叉连接cross join
没有WHERE子句的交叉连接将产生连接所涉及的表的笛卡尔积。
第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。
实施例1
根据本发明实施例,提供了一种程序代码的展示方法的实施例。以该程序代码可以为逻辑复杂的SQL语句为例,该方法可以应用于基于SQL复杂数据处理的开发平台,例如:D2数据开发平台,其是基于分布式海量数据处理平台的在线集成开发环境,用于执行离线批处理任务;Bayes实时计算开发平台,其主要用于实现基于微批次的流计算,通常被用作运行安全监测的规则模型。在上述开发平台的开发或实际运营过程中会涉及到复杂的SQL语句,因此,需要通过对复杂的SQL语句进行逻辑结构清晰的可视化展示,从而提高复杂的SQL语句的可读性。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现程序代码的展示方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口和/或电源。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的程序代码的展示方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的程序代码的展示方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
显示器106可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
具体到本申请,上述处理器102,用于获取程序代码,并按照可视化图形结构对程序代码的展示进行配置,得到待显示页面,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系;显示器106,用于对待显示页面进行展示。
在优选实施过程中,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
使用矩阵图的形式可以对复杂SQL进行在线可视化。矩阵图表格行中展示SQL中的关键字,例如:SELECT,FROM,JOIN,WHERE,GROUP BY,ORDER BY这些主要的结构信息。矩阵图表格列中展示SQL中的层次结构,可以快速定位SQL的内核以及所用到的实体表。
内核是指最内层的查询,由于SQL语句的特点决定了最先开始执行的是最内层的查询逻辑,因此,如果需要分析一个复杂的SQL语句,那么快速定位这个SQL的最内层查询就变得尤为重要,其为整个复杂查询过程的起点。
实体表是指最内层查询所使用的物理表,一个复杂的查询过程总会由一张或若干张物理实体表开始。实体表都会有图标,可以快速定位,同时实体表也可以通过超链接URL的方式快速打开实体表的定义页面,即元数据页面,帮助了解实体表的业务含义,理解该实体表存储着什么样的业务数据,以及包含哪些业务字段。
元数据是指实体表的结构定义。每个物理实体表都会有表结果,会定义表中包含哪些字段,每个字段包含什么数据类型,具体的业务含义是什么,表存储是否分区等信息。这些信息即为表的元数据信息。
元数据页面是指在矩阵图中点击实体表上的超链接可以跳转至元数据页面,该元数据页面中可以看到具体的实体表的元数据信息。
可选地,处理器102还用于在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
在优选实施例中,可以在矩阵图设计模式(相当于上述第一在线编辑模式)和代码编辑模式(相当于上述第二在线编辑模式)之间自由切换,实现在线交互式编辑,也可以导入已有SQL进行可视化转换。
代码编辑模式即为在线SQL语句的编辑环境,用户可以在线编辑SQL语句。矩阵图设计模式即为在线矩阵图的编辑环境,可以通过拖拽、右键点击菜单的方式对在线矩阵图提供编辑的功能,用户可以直接在矩阵图内进行查询逻辑的编辑。系统可以自动保存用户的编辑结果,即使用户编辑的是SQL代码,系统也可以自动反应到对应的SQL矩阵图上,以最终实现“所见即所得”的目的。
可选地,处理器102还用于通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;以及当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
在优选实施例中,可以根据子查询的数据输出结构,对外围的SQL字段引用进行简单的校验,可以自动提示错误的字段引用。
SQL语句的特性决定查询是可以嵌套的,即可以存在多层嵌套子查询。在外层查询中引用子查询的结果字段时,需要确保其所引用的这个输出字段是确实存在的。如果外层查询内引用一个子查询结果输出中不存在的字段,那么该SQL语句将会是无法编译通过的。
考虑到针对复杂查询情形,用户仅凭借肉眼难以明确子查询的输出结果中都包含哪些字段,所以系统可以提供简单校验,自动检查外层查询中所引用的子查询输出结果中的字段是否确实存在,如果不存在,则可以在线提供告警提示。
此外,系统还需要对用户输入的SQL(无论是矩阵图形式的设计输入还是SQL代码形式的编辑输入)进行语义解析,自动构建出各个子查询的输出结果字段。
可选地,处理器102还用于按照以下方式之一导出第一在线编辑模式对应的显示页面:
方式一、按照预设格式的图片导出显示页面;
方式二、按照预设格式的超链接导出显示页面;
方式三、按照预设格式的代码文本导出显示页面。
对于上述方式一和方式二而言,矩阵图设计页面本身既可以作为网页页面上的一个图片,也可以生成图片链接,这样在其他第三方系统内可以直接嵌入该链接。具体方式可以采用直接将矩阵图图片嵌入第三方系统页面或者是通过统一资源定位符(URL)超链接的形式从第三方系统跳转到本系统的页面上。
对于上述方式三而言,矩阵图设计页面还可以导出标准的格式化SQL语句。在代码编辑模式下用户可以独自在线编写代码,但此时并不会对用户输入的代码格式进行限定;而且,在矩阵图设计模式下,用户可以在线设计矩阵图,同时也可以随时切换至代码编辑模式下进行相应地修改,两种模式之间可以随时保持同步;然后,在全部设计完成后,便可以点击导出按钮,整个SQL代码段便可以导出为一个标准的*.sql文本文件,该文件中的SQL代码都是经过自动格式化处理的,例如:子查询部分会自动进行整体缩进。
可选地,处理器102还用于获取添加注释标签的位置信息;以及根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
在优选实施例中,针对SQL代码中的注释在矩阵图中提供标签以及指数图标编辑功能。
这个是针对SQL语句的注释说明,用户如果需要对特定部分的SQL语句添加注释,系统便提供了相应的注释标签功能,同时该注释标签也可以编辑具体的注释内容。用户在页面上控制鼠标悬停在矩阵图注释标签位置时可以提示该标签注释的详细内容。
可选地,处理器102还用于在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;以及接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
别名属于SQL语法中的一个技术术语,实体表、子查询以及特定字段都可以定义别名,为了便于在SQL中的其他位置引用,为实体表、子查询以及特定字段另外选取一个便于记忆的名字。当然,也可以不写别名,不写别名即使用本名。别名可以有效地降低SQL编写难度。
通过折叠和扩展功能可以很好的支持复杂SQL的导航和阅读。具体地,折叠和展开操作可以自动出现在子查询别名上,可以在线交互式操作。
子查询别名即表示子查询内部的全部查询逻辑的输出结果。针对复杂SQL语句,会存在较多子查询,为了便于分析,可以选择将特定子查询进行折叠或者展开操作,即对应子查询别名旁边采用特殊标记表示的按钮(例如:加减号按钮)。
当用户发现矩阵图中一个子查询别名旁边出现一个加号按钮,说明此处的子查询语句已经被折叠。如果需要进一步查看子查询内部的查询语句,则可以点击该按钮执行展开操作。而在子查询内部的查询语句展开之后,此按钮便会由加号按钮变成减号按钮。
另外,通过上述矩阵图还可以实现如下特殊功能:
针对关联、CASE WHEN等成对出现的SQL语法部分提供打框功能(即,为每个分支进行分段说明),可以方便查看成对的内容。
Case具有两种格式,其分别为:简单Case函数与Case搜索函数。
(1)以简单Case函数为例:
CASE sex
WHEN'1'THEN'男'
WHEN'2'THEN'女'
ELSE'其他'END
(2)以Case搜索函数为例:
CASE WHEN sex='1'THEN'男'
WHEN sex='2'THEN'女'
ELSE'其他'END
上述两种方式可以实现相同的功能,其含义均表示当参数(性别“sex”)取值为1时,则性别为男性;当参数(性别“sex”)取值为2时,则性别为男性;否则,性别为其他,流程结束。
简单Case函数的写法相对比较简洁,但是,与Case搜索函数相比,在功能实现方面存在一定限制,例如:写判断式。另外,还需要注意的是,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。
以下面描述的SQL语段为例,其运行结果将无法得到“第二类”这个结果:
CASE WHEN col_1IN('a','b')THEN'第一类'
WHEN col_1IN('a')THEN'第二类'
ELSE'其他'END
通过上述分析可以发现,本发明实施例所提供的技术方案针对复杂SQL提供一种基于矩阵图的在线可视化以及编辑工具,可以在代码编辑模式和矩阵图设计模式间自由切换,可以做到SQL自动格式化,字段引用自动判断合法性,提高复杂SQL结构分析能和快速定位SQL层次和内核的能力。
下面将结合图2所示的优选实施方式对上述优选实施过程作进一步地描述。
图2是根据本发明优选实施例的矩阵图设计页面的示意图。如图2所示,假设需要编写实现以下业务场景的SQL查询语句:
第一步、将原始日志数据与历史异常数据进行关联,实时检测出最新的异常数据。
上述原始日志数据是指原始超文本传输协议(HTTP)流量日志数据,其包含基本的HTTP信息,例如:源互联网协议(IP)地址、目的IP地址、请求信息。上述历史异常数据是指根据HTTP流量日志数据检测出来的历史异常请求数据,在检测到最新请求异常数据时,需要与历史异常数据进行关联,由此可以排除部分误报异常。
第二步、将最新请求异常数据与白名单进行关联,在确定符合白名单规则的情况下,则不作为异常数据。
顾名思义,如果检测到的最新请求异常数据曾经在白名单中出现过,则说明是内部测试或者其他正常的情况,而不应该作为异常告警输出。
第三步、需要控制应用系统,只检测重点的四个应用。
需要说明的是,这个是虚构的业务场景,对应下述SQL语句的nodegroup in(‘a’,’b’,’c’,’d’)部分,其目的在于:说明如何实现该业务场景的SQL语句可视化。
第四步、需要查看相关联的历史异常个数,并在历史异常个数大于或等于预设阈值的情况下,发出异常告警。即通过计算每个应用系统的历史异常个数,然后采用预设阈值进行过滤,如果历史异常个数大于或等于预设阈值,则将其作为最新异常数据输出异常告警。
通过上述业务场景的描述,其代码实现过程主要包括:(具体编写的SQL语句在此不再赘述)
(1)设置adl_cloudsec_log raw_log函数,用于定义上述业务场景中的原始HTTP流量日志数据表;
(2)设置adl_cloudsec_abnormal函数,用于定义上述业务场景中的历史异常数据表;
(3)通过left outer join在原始HTTP流量日志数据表与历史异常数据表之间执行关联操作;
(4)设置白名单关联操作,即,如果最新检测出的异常数据关联匹配命中白名单数据,则不作为异常输出;
(5)设置该业务场景中的四个重点应用;
(6)统计每个应用系统中出现的异常个数;
(7)根据预设阈值执行过滤操作,即,对应的历史异常个数如果大于或等于预设阈值,则作为最终的输出结果。
经过分析后发现,为了实现上述场景,需要编写近百行的SQL语句,其中,涵盖了大量的内置函数(Built-in Function)和分析函数(Analytic Function)。
内置函数是系统内部预先设计完成的基础函数,用户在编写SQL逻辑时可以直接调用。每个内置函数都可以实现特定的数据处理逻辑,例如:内置函数lower()可以将传入的参数转化为小写字符串。
具体到上述业务场景,内置函数可以包括:
(1)if()函数,用于条件判断选择结果;
(2)concat()函数,用于字符串拼接;
(3)regexp_replace()函数,用于替换子字符串;
(4)regexp_extract()函数,用于按照特定的格式抽取子字符串;
(5)length()函数用于计算字符串的长度。
分析函数的操作对象是通过查询得到的数据结果集,在数据结果集上了可以执行一些统计计算,该统计计算与查询操作可以一并完成,而不需要再执行二次查询操作。分析函数对简化开发工作量有很大帮助,尤其适用于复杂的数据统计分析领域。例如:按照一种属性对数据进行分组,然后每个分组内再按照另一种属性进行排序并记录组内成员的序号便可以使用分析函数一次性完成。
具体到上述业务场景,分析函数可以包括:count(*)over(partition byappname),用于表示按照appname属性分组然后统计分组成员个数。即,对应每个应用系统的历史异常个数。
由此可见,如果不是编写该段SQL语句的开发人员本身来维护这段SQL语句,那么其他人员需要逐行阅读SQL语句来逐步理解与分析该段SQL语句的业务逻辑,直至完全清楚整套业务逻辑才可能对此进行维护。
通过采用在线动态矩阵图的形式实现复杂SQL可视化,而且在线动态矩阵图中的分支嵌套结构可以随时根据需要进行折叠以及展开操作,用户可以在在线可视化设计模式标签页面中直接设计SQL,交互式修改业务逻辑,以便于在在线动态矩阵图行中获取SQL的结构信息。
同时,通过在线动态矩阵图的形式还可以快速地通过该矩阵图列中查看到的信息尽快定位SQL层次和内核,以及定位SQL所需要使用的实体表、子查询、关联、分组汇聚等信息。
另外,还可以直接采用在线交互方式设计SQL语句,在可视化矩阵图设计模式与SQL代码编辑模式之间可以即时切换,针对SQL语句中的注释在矩阵图上提供标签图标以及注释图标的功能,针对关联和CASE WHEN语句也提供相应的打框功能,由此可以非常直观的查看整个SQL语句的结构。
在上述运行环境下,本申请提供了如图3所示的程序代码的展示方法。图3是根据本发明实施例的程序代码的展示方法的流程图。如图3所示,该方法可以包括以下处理步骤:
步骤S300,获取程序代码,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行;
步骤S302,采用可视化图形结构对程序代码进行展示,其中,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系。
通过上述步骤,可以采用获取程序代码,该程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行的方式,通过采用在程序代码中的关键字与程序代码的层次结构之间建立关联关系的可视化图形结构对程序代码进行展示,达到了针对复杂的SQL语句,提供一种基于可视化图形结构的在线可视化功能,同时还可以在线编辑,提供编辑模式和设计模式的目的,从而实现了提高开发与维护复杂SQL语句的效率,降低开发与维护的出错率的技术效果,进而解决了相关技术中对于复杂SQL语句的开发与维护的复杂度较高、难度较大的技术问题。
在优选实施过程中,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
可选地,在步骤S302,采用可视化图形结构对程序代码进行展示之后,还可以包括以下执行步骤:
步骤S304,在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
可选地,在步骤S304,接收第一输入信息之后,还可以包括以下执行步骤:
步骤S306,通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;
步骤S308,当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
可选地,在步骤S304,接收第一输入信息之后,还可以包括以下执行步骤:
步骤S310,按照以下方式之一导出第一在线编辑模式对应的显示页面:
方式一、按照预设格式的图片导出显示页面;
方式二、按照预设格式的超链接导出显示页面;
方式三、按照预设格式的代码文本导出显示页面。
可选地,在步骤S302,采用可视化图形结构对程序代码进行展示之后,还可以包括以下处理步骤:
步骤S312,获取添加注释标签的位置信息;
步骤S314,根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
可选地,在步骤S302,采用可视化图形结构对程序代码进行展示之后,还可以包括以下执行步骤:
步骤S316,在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;
步骤S318,接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的程序代码的展示方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
根据本发明实施例,还提供了一种用于实施上述程序代码的展示方法的程序代码的展示装置,图4是根据本发明实施例的程序代码的展示装置的结构框图。如图4所示,该装置包括:第一获取模块100,用于获取程序代码,其中,程序代码按照分层嵌套结构进行设置,并从分层嵌套结构的最内层嵌套结构开始运行;展示模块102,用于采用可视化图形结构对程序代码进行展示,其中,可视化图形结构用于在程序代码中的关键字与程序代码的层次结构之间建立关联关系。
在优选实施过程中,当程序代码为结构化查询语言SQL且可视化图形结构为矩阵图时,矩阵图中的行用于展示SQL的关键字以及矩阵图中的列用于展示SQL的层次结构。
可选地,图5是根据本发明优选实施例的程序代码的展示装置的结构框图。如图5所示,上述装置还可以包括:第一接收模块104,用于在与可视化图形结构对应的第一在线编辑模式下或者与程序代码对应的第二在线编辑模式下接收第一输入信息,其中,第一输入信息用于对程序代码所需执行的业务逻辑进行调整。
可选地,如图5所示,上述装置还可以包括:解析模块106,用于通过对第一输入信息进行语义解析,从分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;提示模块108,用于当确定外层嵌套结构所引用的字段并未出现在外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
可选地,如图5所示,上述装置还可以包括:导出模块110,用于按照以下方式之一导出第一在线编辑模式对应的显示页面:按照预设格式的图片导出显示页面;按照预设格式的超链接导出显示页面;按照预设格式的代码文本导出显示页面。
可选地,如图5所示,上述装置还可以包括:第二获取模块112,用于获取添加注释标签的位置信息;第二接收模块114,用于根据位置信息在注释标签处接收第二输入信息,其中,第二输入信息描述与注释标签对应的程序语句的备注内容。
可选地,如图5所示,上述装置还可以包括:设置模块116,用于在分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,控制组件用于将一层或多层分支结构对应的代码段进行折叠或展开;第三接收模块118,用于接收对控制组件的触控操作,对一层或多层分支结构对应的代码段进行折叠或展开。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (21)
1.一种程序代码的展示设备,其特征在于,包括:
处理器,用于获取程序代码,并按照可视化图形结构对所述程序代码的展示进行配置,得到待显示页面,其中,所述程序代码按照分层嵌套结构进行设置,并从所述分层嵌套结构的最内层嵌套结构开始运行,所述可视化图形结构用于在所述程序代码中的关键字与所述程序代码的层次结构之间建立关联关系;
显示器,用于对所述待显示页面进行展示。
2.根据权利要求1所述的设备,其特征在于,当所述程序代码为结构化查询语言SQL且所述可视化图形结构为矩阵图时,所述矩阵图中的行用于展示所述SQL的关键字以及所述矩阵图中的列用于展示所述SQL的层次结构。
3.根据权利要求1所述的设备,其特征在于,所述处理器还用于在与所述可视化图形结构对应的第一在线编辑模式下或者与所述程序代码对应的第二在线编辑模式下接收第一输入信息,其中,所述第一输入信息用于对所述程序代码所需执行的业务逻辑进行调整。
4.根据权利要求3所述的设备,其特征在于,所述处理器还用于通过对所述第一输入信息进行语义解析,从所述分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;以及当确定外层嵌套结构所引用的字段并未出现在所述外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
5.根据权利要求3所述的设备,其特征在于,所述处理器还用于按照以下方式之一导出第一在线编辑模式对应的显示页面:
按照预设格式的图片导出所述显示页面;
按照预设格式的超链接导出所述显示页面;
按照预设格式的代码文本导出所述显示页面。
6.根据权利要求1所述的设备,其特征在于,所述处理器还用于获取添加注释标签的位置信息;以及根据所述位置信息在所述注释标签处接收第二输入信息,其中,所述第二输入信息描述与所述注释标签对应的程序语句的备注内容。
7.根据权利要求1所述的设备,其特征在于,所述处理器还用于在所述分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,所述控制组件用于将所述一层或多层分支结构对应的代码段进行折叠或展开;以及接收对所述控制组件的触控操作,对所述一层或多层分支结构对应的代码段进行折叠或展开。
8.一种程序代码的展示方法,其特征在于,包括:
获取程序代码,其中,所述程序代码按照分层嵌套结构进行设置,并从所述分层嵌套结构的最内层嵌套结构开始运行;
采用可视化图形结构对所述程序代码进行展示,其中,所述可视化图形结构用于在所述程序代码中的关键字与所述程序代码的层次结构之间建立关联关系。
9.根据权利要求8所述的方法,其特征在于,当所述程序代码为结构化查询语言SQL且所述可视化图形结构为矩阵图时,所述矩阵图中的行用于展示所述SQL的关键字以及所述矩阵图中的列用于展示所述SQL的层次结构。
10.根据权利要求8所述的方法,其特征在于,在采用所述可视化图形结构对所述程序代码进行展示之后,还包括:
在与所述可视化图形结构对应的第一在线编辑模式下或者与所述程序代码对应的第二在线编辑模式下接收第一输入信息,其中,所述第一输入信息用于对所述程序代码所需执行的业务逻辑进行调整。
11.根据权利要求10所述的方法,其特征在于,在接收所述第一输入信息之后,还包括:
通过对所述第一输入信息进行语义解析,从所述分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;
当确定外层嵌套结构所引用的字段并未出现在所述外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
12.根据权利要求10所述的方法,其特征在于,在接收所述第一输入信息之后,还包括:
按照以下方式之一导出第一在线编辑模式对应的显示页面:
按照预设格式的图片导出所述显示页面;
按照预设格式的超链接导出所述显示页面;
按照预设格式的代码文本导出所述显示页面。
13.根据权利要求8所述的方法,其特征在于,在采用所述可视化图形结构对所述程序代码进行展示之后,还包括:
获取添加注释标签的位置信息;
根据所述位置信息在所述注释标签处接收第二输入信息,其中,所述第二输入信息描述与所述注释标签对应的程序语句的备注内容。
14.根据权利要求8所述的方法,其特征在于,在采用所述可视化图形结构对所述程序代码进行展示之后,还包括:
在所述分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,所述控制组件用于将所述一层或多层分支结构对应的代码段进行折叠或展开;
接收对所述控制组件的触控操作,对所述一层或多层分支结构对应的代码段进行折叠或展开。
15.一种程序代码的展示装置,其特征在于,包括:
第一获取模块,用于获取程序代码,其中,所述程序代码按照分层嵌套结构进行设置,并从所述分层嵌套结构的最内层嵌套结构开始运行;
展示模块,用于采用可视化图形结构对所述程序代码进行展示,其中,所述可视化图形结构用于在所述程序代码中的关键字与所述程序代码的层次结构之间建立关联关系。
16.根据权利要求15所述的装置,其特征在于,当所述程序代码为结构化查询语言SQL且所述可视化图形结构为矩阵图时,所述矩阵图中的行用于展示所述SQL的关键字以及所述矩阵图中的列用于展示所述SQL的层次结构。
17.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第一接收模块,用于在与所述可视化图形结构对应的第一在线编辑模式下或者与所述程序代码对应的第二在线编辑模式下接收第一输入信息,其中,所述第一输入信息用于对所述程序代码所需执行的业务逻辑进行调整。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
解析模块,用于通过对所述第一输入信息进行语义解析,从所述分层嵌套结构的最内层嵌套结构至最外层嵌套结构逐次构建每层嵌套结构的输出结果字段;
提示模块,用于当确定外层嵌套结构所引用的字段并未出现在所述外层嵌套结构所包含的内层嵌套结构的输出结果字段时,发出错误提示。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
导出模块,用于按照以下方式之一导出第一在线编辑模式对应的显示页面:
按照预设格式的图片导出所述显示页面;
按照预设格式的超链接导出所述显示页面;
按照预设格式的代码文本导出所述显示页面。
20.根据权利要求15所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取添加注释标签的位置信息;
第二接收模块,用于根据所述位置信息在所述注释标签处接收第二输入信息,其中,所述第二输入信息描述与所述注释标签对应的程序语句的备注内容。
21.根据权利要求15所述的装置,其特征在于,所述装置还包括:
设置模块,用于在所述分层嵌套结构中的一层或多层分支结构的起始位置设置控制组件,其中,所述控制组件用于将所述一层或多层分支结构对应的代码段进行折叠或展开;
第三接收模块,用于接收对所述控制组件的触控操作,对所述一层或多层分支结构对应的代码段进行折叠或展开。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710033610.5A CN108334321A (zh) | 2017-01-18 | 2017-01-18 | 程序代码的展示设备、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710033610.5A CN108334321A (zh) | 2017-01-18 | 2017-01-18 | 程序代码的展示设备、方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108334321A true CN108334321A (zh) | 2018-07-27 |
Family
ID=62921910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710033610.5A Pending CN108334321A (zh) | 2017-01-18 | 2017-01-18 | 程序代码的展示设备、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108334321A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109933695A (zh) * | 2019-03-15 | 2019-06-25 | 盛科网络(苏州)有限公司 | 一种层次化udf的芯片处理方法及装置 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN111831272A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种采用图形化的开发的方法、介质、设备和装置 |
WO2020228667A1 (zh) * | 2019-05-13 | 2020-11-19 | 阿里巴巴集团控股有限公司 | 信息可视化方法、装置、存储介质及处理器 |
CN112214203A (zh) * | 2020-09-28 | 2021-01-12 | 远光软件股份有限公司 | 一种对程序分层设计的方法、装置、终端及存储介质 |
CN112947984A (zh) * | 2020-09-29 | 2021-06-11 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
US11573790B2 (en) | 2019-12-05 | 2023-02-07 | International Business Machines Corporation | Generation of knowledge graphs based on repositories of code |
CN116610359A (zh) * | 2023-07-18 | 2023-08-18 | 建信金融科技有限责任公司 | 一种编译信息的展示方法、装置及程序产品 |
US11954424B2 (en) | 2022-05-02 | 2024-04-09 | International Business Machines Corporation | Automatic domain annotation of structured data |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360374A (zh) * | 2011-09-30 | 2012-02-22 | 南威软件股份有限公司 | 一种用户视图配置方法 |
CN103473306A (zh) * | 2013-09-10 | 2013-12-25 | 北京思特奇信息技术股份有限公司 | 一种采用sql标记替换法实现数据自取的方法及系统 |
US20140208293A1 (en) * | 2013-01-22 | 2014-07-24 | Microgen Aptitude Limited | SQL Visualizer |
CN105718265A (zh) * | 2016-01-21 | 2016-06-29 | 浙江慧脑信息科技有限公司 | 一种带标签的并列式嵌套型软件设计和编程方法 |
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
CN105912634A (zh) * | 2016-04-05 | 2016-08-31 | 扬州大学 | 一种面向软件代码检索的查询语句重新生成方法 |
-
2017
- 2017-01-18 CN CN201710033610.5A patent/CN108334321A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360374A (zh) * | 2011-09-30 | 2012-02-22 | 南威软件股份有限公司 | 一种用户视图配置方法 |
US20140208293A1 (en) * | 2013-01-22 | 2014-07-24 | Microgen Aptitude Limited | SQL Visualizer |
CN103473306A (zh) * | 2013-09-10 | 2013-12-25 | 北京思特奇信息技术股份有限公司 | 一种采用sql标记替换法实现数据自取的方法及系统 |
CN105718265A (zh) * | 2016-01-21 | 2016-06-29 | 浙江慧脑信息科技有限公司 | 一种带标签的并列式嵌套型软件设计和编程方法 |
CN105912634A (zh) * | 2016-04-05 | 2016-08-31 | 扬州大学 | 一种面向软件代码检索的查询语句重新生成方法 |
CN105843945A (zh) * | 2016-04-08 | 2016-08-10 | 联动优势科技有限公司 | 一种报表生成方法及系统 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110874367B (zh) * | 2018-09-03 | 2023-04-07 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN110874367A (zh) * | 2018-09-03 | 2020-03-10 | 阿里巴巴集团控股有限公司 | 结构化查询语言语句的可视化方法和装置 |
CN109933695A (zh) * | 2019-03-15 | 2019-06-25 | 盛科网络(苏州)有限公司 | 一种层次化udf的芯片处理方法及装置 |
CN109933695B (zh) * | 2019-03-15 | 2023-08-22 | 苏州盛科通信股份有限公司 | 一种层次化udf的芯片处理方法及装置 |
CN111831272A (zh) * | 2019-04-15 | 2020-10-27 | 阿里巴巴集团控股有限公司 | 一种采用图形化的开发的方法、介质、设备和装置 |
WO2020228667A1 (zh) * | 2019-05-13 | 2020-11-19 | 阿里巴巴集团控股有限公司 | 信息可视化方法、装置、存储介质及处理器 |
US11573790B2 (en) | 2019-12-05 | 2023-02-07 | International Business Machines Corporation | Generation of knowledge graphs based on repositories of code |
CN112214203A (zh) * | 2020-09-28 | 2021-01-12 | 远光软件股份有限公司 | 一种对程序分层设计的方法、装置、终端及存储介质 |
CN112947984A (zh) * | 2020-09-29 | 2021-06-11 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
CN112947984B (zh) * | 2020-09-29 | 2024-05-14 | 深圳市明源云科技有限公司 | 应用程序开发方法及装置 |
US11954424B2 (en) | 2022-05-02 | 2024-04-09 | International Business Machines Corporation | Automatic domain annotation of structured data |
CN116610359A (zh) * | 2023-07-18 | 2023-08-18 | 建信金融科技有限责任公司 | 一种编译信息的展示方法、装置及程序产品 |
CN116610359B (zh) * | 2023-07-18 | 2023-10-20 | 建信金融科技有限责任公司 | 一种编译信息的展示方法、装置及程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108334321A (zh) | 程序代码的展示设备、方法及装置 | |
US20200257582A1 (en) | Predicting system behavior using machine data | |
US11893010B1 (en) | Data model selection and application based on data sources | |
US9600563B2 (en) | Method and system for indexing, relating and managing information about entities | |
US20180246918A1 (en) | Generating and storing summarization tables for sets of searchable events | |
EP2048585A2 (en) | System and method for enhancing search relevancy using semantic keys | |
US11216480B2 (en) | System and method for querying data points from graph data structures | |
CN107016025A (zh) | 一种非关系型数据库索引的建立方法及装置 | |
US20080126327A1 (en) | Annotation of query components | |
US11423038B2 (en) | Data analysis system and method | |
CN110188165A (zh) | 合同模板获取方法、装置、存储介质和计算机设备 | |
EP3467683A1 (en) | System and method for querying a data repository | |
CN109493928A (zh) | 基于条件树的患者数据筛选方法、系统、设备及存储介质 | |
CN111159203B (zh) | 一种数据关联分析的方法、平台、电子设备及存储介质 | |
CN111782823A (zh) | 知识图谱在违章大数据分析中的应用 | |
CN106959970A (zh) | 词库、词库的处理方法、装置和用于处理词库的装置 | |
CN112948385B (zh) | 序列数据分布的显示方法、装置、存储介质及终端设备 | |
CN110349644B (zh) | 一种基于语音输入的处方智能系统 | |
JP2004030381A (ja) | 業務支援システム | |
Xia et al. | Research on the Construction Method of Knowledge Graph | |
Sarray et al. | Assisted Composition of Linked Data Queries. | |
JP2506987B2 (ja) | 画像検索装置及び方法 | |
CN111767387A (zh) | 问句语料生成方法、装置、设备及计算机可读存储介质 | |
Shah | The Morpheus Visualization System: a general-purpose RDF results browser |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180727 |