通过随需减少数据库查询来查询数据库。查询文档包括全局变量,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串。提供代理用于通过以下方式从所述查询文档构建扩展查询,所述方式包括:把由第一标签所标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由第二标签所标识的任何变量和删除第二标签而不替换由第二标签所标识的变量。
【技术实现步骤摘要】
本专利技术涉及数据库查询,更具体地说,本专利技术涉及使用变量替换以及自动联合来按需减少数据库查询。
技术介绍
结构化查询语言(SQL)对执行查询来说是一种非常严格的语言。这正是所期望的,因为对于数据库查询的好的结构化的格式是SQL语言的目的。其提供了通用的语言来执行数据库脚本,当前市场上地所有数据库应用均可以使用所述数据库脚本,并可以在所述数据库脚本中提供应用程序员接口(API)。然而,有时需要将来自任意数量的源数据库表单中的大量信息一起放到一个数据集中。SQL通过提供内部连接以及联合命令来处理该过程,从而可以在表单及不同数据集之间合并数据。然而,在这种情况下,需要在将不会输入数据的位置插入零,以及使用仅用来确定每个联合中得到了正确数据的重复代码。在SQL中,查询可以根据一组规则及定义来配置。当前,程序员要处理巨大的代码复杂性。SQL要求语法成分非常精确。
技术实现思路
一种系统、程序产品以及方法,其用于通过接收具有全局变量的查询文档来通过随需减少数据库查询而进行数据库查询,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,并被标识第二全局变量的第二标签标识为整个删除串;以及通过以下方式从所述查询文档构建扩展查询,所述方式包括把由第一标签标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由第二标签所标识的任何变量和删除所述第二标签而不替换由所述第二标签标识的变量。通过以下对本专利技术当前的优选实施例的详细描述并结合附图,本专利技术其它的特点和优点将变得明显。附图说明图1例示了用于根据本专利技术优选实施例进行数据库查询的各种程序结构及组件。图2例示了变量的语法。图3是例示了用于查询数据库的本专利技术优选实施例的步骤的高标准流程图。图4是例示了用于执行图3中选择性替换的步骤41的本专利技术优选实施例的步骤的流程图。图5是高标准系统图,其例示了机器可读的程序存储装置,所述装置明确包含了可以由机器执行的指令程序用来执行查询数据库的方法步骤。具体实施例方式根据本专利技术的优选实施例,当需要把来自任意数量的源数据库表单的大量信息一起放入一个数据集时,替换变量以及UNION命令将在运行时被插入,以根据子查询生成上级查询。结果,这将把数百页的代码减少为只有一页纸那么少。在编程中,变量替换已经被广泛应用,但是其仅仅被用于替换单独的变量。根据本专利技术的优选实施例,变量替换用于构建自身的查询。所述子查询是一种基于任意数量的规则或终端用户所驱动的过程的可以被添加、删除以及修改的命令解释程序。如果变量可以依其在运行时的状况而不同,则其可以被替换。这就被扩展为,如果查询在运行时可以不同,则替换该查询(包括把该查询括在中间的字符标签)。在SQL中,可以根据一组规则及定义来配置查询(即,查询是可配置的),这将导致巨大的代码复杂性。在本专利技术中,通过断开代码段以及简化代码来处理这种复杂性。SQL要求语法成分非常精确。参阅图1,其阐述了与本专利技术的优选实施例相关的选定结构以及单元。查询文档20馈送控制文档24以及文档表单28,如图线23和25所分别表示的。控制文档24包括执行进度表26并访问文档表单28中的包括查询18、全局变量17和联合定义19在内的信息。运行时代理22监控下述控制文档,其执行进度表26指示了将被执行的查询,随之,所述运行时代理22从控制文档24获取构建扩展查询12所需的那些定义、变量以及查询,并将其馈送至载入代理16。接下来,在数据库10上执行扩展查询12来生成输出集14。参阅与表单1相关的图2,变量的语法包括标签42、46之间的variable_name 44。标签指示变量的类型。在表单1的示例中,标签%标识整个替换变量,而标签@标识整个删除串。参阅图3,本专利技术的优选实施例的数据库查询按照如下进行。在步骤29中,程序员准备了查询文档20,诸如表单1中所例示的。该查询文档20是普通文档,其将在随后的步骤中被修改以生成如表单2和5中所例示的扩展查询12,下文将对此进行更详尽的描述。在步骤31中,用户(可以是程序员或其他人)指定执行进度表26并在文档表单28中定义输出集14所需要的具体查询18。查询文档20指定全局变量17,而具体查询18和得到的联合定义19来自于本步骤31中的用户输入以及查询文档20。在步骤33中,运行时代理22查询控制文档24来确定要运行哪些查询,并在步骤35中调用步骤35中所需的查询18、全局变量17以及联合定义19并将其提供给载入代理16,以构建扩展查询12。在步骤43中,扩展查询12根据数据库10来执行,以构建输出集14,如表单2以及表单5(对于不同的查询)中所例示的。步骤37-41是步骤35的扩展。在步骤37中,待构建至该查询中的联合被确定,而在步骤39中,整个替换变量被运行时串所替换。在本示例的语法中,这是一些由标签% 42、46所标识的串或变量44。在步骤30中,UNION ALL被插入,以标识查询中的联合,从而可以根据具体选择标准来估算聚合函数。在步骤41中,整个的删除串44被选择性地替换,或者其标签@42、46被删除,以将变量串44恢复为普通语法。参阅图4,步骤41被进一步细化。在步骤32中,检验下一变量,看其在每个接连的联合中是否改变。如果未改变,则在步骤34中该变量将不进行变量替换而留做固定代码。如果发生改变,则在步骤36中完成变量替换,例如,改变选择标准,比如日期子句。在步骤38中,检验该下一变量,看其是否可以改变位置。如果是,则在步骤40中,随同变量替换在上方或下方插入NULL或零值,以便数据可以按顺序进行移位。当联合完成后,所有数据归于一个数据集中。根据控制文档24,运行时代理22和/或载入代理16提供了子例程系统,其被创建用于根据变量名来替换或删除变量17。这将在运行时在步骤39和41中被执行,并可以在存在或不存在终端用户交互的情况下完成(根据整个最终产品的要求而定)。在使用了几个聚合函数的表单1的示例查询中,在%variable_name%中的变量是整个替换变量,其在运行时由代理用任意需要的串来替换。在@variable_name@中的变量指整个删除串,在运行时如果存在需要删除行的条件,则所述变量为将删除变量,否则,标签@(或符号)被删除从而该行被恢复为普通的SQL语法。SQL被用于使用下列内容来创建查询SELECT 标识抓取的字段FROM 从中抓取字段的表单WHERE用来确定将从字段中选择哪些数据GROUP BY 输出排序次序ORDER BY 输出显示中的列的次序在SQL中,UNION是可以结合两个子选择结果的操作,且常用来合并从几个表单中得到的数值列表。占位符用在从SQL返回的结果的列中以使其求和不会在输出中被覆盖。例如,要把三个表单A、B、D中的数值合并到一个表单E中,需要两个联合。第一个联合合并表单A和B,形成表单C。第二个联合合并表单C和D,形成表单E。表单1例示了一组使用了本专利技术优选实施例的变量替换策略的SQL代码。在该示例中,ACCOUNT_DESC是表单名,TA是分配变量,%variable_name%表示在该代码中随后将被替换的串,%INSERTZEROABOVE%是指运行时所确定数量的NULL值将被插入上方,%INSERTZERO本文档来自技高网...
【技术保护点】
一种通过随需减少数据库查询来查询数据库的方法,包括:接收具有全局变量的查询文档,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串;以及通过以下方式从所述查询 文档构建扩展查询,所述方式包括:把由所述第一标签标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由所述第二标签所标识的任何变量和删除所述第二标签而不替换由所述第二标签所标识的变量。
【技术特征摘要】
US 2005-1-11 11/034,3901.一种通过随需减少数据库查询来查询数据库的方法,包括接收具有全局变量的查询文档,所述全局变量选择性地被标识第一全局变量的第一标签标识为整个替换变量,以及被标识第二全局变量的第二标签标识为整个删除串;以及通过以下方式从所述查询文档构建扩展查询,所述方式包括把由所述第一标签标识的任何变量替换为运行时串,在所述查询文档中标识任何联合,以及选择性地替换由所述第二标签所标识的任何变量和删除所述第二标签而不替换由所述第二标签所标识的变量。2.权利要求1的方法,所述选择性地替换的步骤进一步包括确定在每个接连的联合中下一给定变量是否改变,并且如果是,则删除所述第二标签以保留该下一给定变量而不进行替换;以及如果否,则基于改变选择标准来替换所述下一给定变量。3.权利要求2的方法,所述选择性地替换的步骤进一步包括确定所述下一给定变量是否能够在输出集之中改变位置,并且如果是,则随同变量替换在上方或下方选择性地插入空值以使输出数据按顺序进行移位。4.权利要求1的方法,进一步包括从所述查询文档以及用户输入中构建指定了执行进度表、查询、全局变量以及联合定义的控制文档。5.权利要求4的方法,进一步包括执行运行时代理来监控所述控制文档中将运行的查询,以及在识别出这样的查询时构建并执行所述扩展...
【专利技术属性】
技术研发人员:MJ班格,AM章,JA小马丁,DG默里,
申请(专利权)人:国际商业机器公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。