CN114968346A - Ddl脚本的字段注释检测方法、装置、设备及存储介质 - Google Patents
Ddl脚本的字段注释检测方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN114968346A CN114968346A CN202210588978.9A CN202210588978A CN114968346A CN 114968346 A CN114968346 A CN 114968346A CN 202210588978 A CN202210588978 A CN 202210588978A CN 114968346 A CN114968346 A CN 114968346A
- Authority
- CN
- China
- Prior art keywords
- script
- field
- code
- target
- ddl
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- 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/245—Query processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及开发辅助技术领域,揭示了一种DDL脚本的字段注释检测方法、装置、设备及存储介质,其中方法包括:获取待检测DDL脚本;对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;判断所述字段注释需求数量是否等于所述字段注释实际数量;若是,则确定字段注释检测结果的检测结论为成功;若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。从而实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
Description
技术领域
本申请涉及到开发辅助技术领域,特别是涉及到一种DDL脚本的字段注释检测方法、装置、设备及存储介质。
背景技术
目前在测试过程中,针对新增模型表、新增视图、模型表新增字段对应的所有字段和表名,需要校验DDL(Data Definition Language,数据定义语言)脚本中是否添加字段注释。目前采用手工查询的方式进行校验,需要花费大量时间,校验容易出现遗漏。
发明内容
本申请的主要目的为提供一种DDL脚本的字段注释检测方法、装置、设备及存储介质,旨在解决现有技术的在校验DDL脚本中是否添加字段注释时,校验容易出现遗漏的技术问题。
为了实现上述发明目的,本申请提出一种DDL脚本的字段注释检测方法,所述方法包括:
获取待检测DDL脚本;
对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
判断所述字段注释需求数量是否等于所述字段注释实际数量;
若是,则确定字段注释检测结果的检测结论为成功;
若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
进一步的,所述获取待检测DDL脚本的步骤,包括:
获取DDL脚本目录地址;
根据所述DDL脚本目录地址获取数据包,作为待处理数据包;
对所述待处理数据包中的回滚文件夹进行删除处理,得到待分析数据包;
从所述待分析数据包中查找每个SQL文件,作为目标DDL脚本;
将任一个所述目标DDL脚本作为所述待检测DDL脚本。
进一步的,所述对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算的步骤,包括:
对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串;
根据所述待处理字符串生成SQL代码列表,其中,所述SQL代码列表中的每个元素是一条SQL代码;
根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算。
进一步的,所述对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串的步骤,包括:
采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码;
对所述第一代码进行单引号中的字符串的删除处理,得到第二代码;
判断所述第二代码是否存在预设的代码注释符;
若是,则从所述第二代码中获取所述代码注释符之前的代码,作为第三代码;
若否,则将所述第二代码作为所述第三代码;
对所述第三代码进行带逗号的函数的删除处理,得到第四代码;
重复执行所述采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码的步骤,直至完成所述待检测DDL脚本中的代码的获取;
将各个所述第四代码进行不换行的字符串的拼接,得到待转换字符串;
对所述待转换字符串中的字母进行大写字母转换,得到所述待处理字符串。
进一步的,所述根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算的步骤,包括:
从所述SQL代码列表中获取一个元素,作为目标SQL代码;
对所述目标SQL代码进行脚本类型识别,得到目标脚本类型;
对所述目标SQL代码进行逗号的数量计算,得到待分析逗号数量;
根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量;
对所述目标SQL代码进行字段注释关键字的数量计算,得到单条实际数量;
将所述SQL代码列表对应的各个所述单条需求数量进行相加,得到所述字段注释需求数量;
将所述SQL代码列表对应的各个所述单条实际数量进行相加,得到所述字段注释实际数量。
进一步的,所述根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量的步骤,包括:
若所述目标脚本类型为创建视图脚本或建表脚本,则将所述待分析逗号数量加2,得到所述单条需求数量;
若所述目标脚本类型为增加字段脚本,则将所述待分析逗号数量加1,得到所述单条需求数量。
进一步的,所述对所述目标SQL代码进行脚本类型识别,得到目标脚本类型的步骤,包括:
判断所述目标SQL代码的开头是否包含预设的创建关键字,以及所述目标SQL代码中是否包括预设的视图关键字;
若均为是,则确定所述目标脚本类型为创建视图脚本;
若任一个为否,则判断所述目标SQL代码的开头是否包含所述创建关键字,以及所述目标SQL代码中是否包括预设的表格关键字;
若均为是,则确定所述目标脚本类型为建表脚本;
若任一个为否,则判断所述目标SQL代码的开头是否包含预设的添加表关键字,以及所述目标SQL代码是否未包含预设的设置关键字、未包含预设的删除关键字及包含所述表格关键字;
若均为是,则确定所述目标脚本类型为增加字段脚本;
若任一个为否,则确定所述目标脚本类型为其他脚本。
本申请还提出了一种DDL脚本的字段注释检测装置,所述装置包括:
数据获取模块,用于获取待检测DDL脚本;
数量计算模块,用于对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
判断模块,用于判断所述字段注释需求数量是否等于所述字段注释实际数量;
第一结果确认模块,用于若所述字段注释需求数量等于所述字段注释实际数量,则确定字段注释检测结果的检测结论为成功;
第二结果确认模块,若所述字段注释需求数量不等于所述字段注释实际数量,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
本申请还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本申请还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本申请的DDL脚本的字段注释检测方法、装置、设备及存储介质,其中方法通过对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;判断所述字段注释需求数量是否等于所述字段注释实际数量;若是,则确定字段注释检测结果的检测结论为成功;若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。从而实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
附图说明
图1为本申请一实施例的DDL脚本的字段注释检测方法的流程示意图;
图2为本申请一实施例的DDL脚本的字段注释检测装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请实施例中提供一种DDL脚本的字段注释检测方法,所述方法包括:
S1:获取待检测DDL脚本;
S2:对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
S3:判断所述字段注释需求数量是否等于所述字段注释实际数量;
S4:若是,则确定字段注释检测结果的检测结论为成功;
S5:若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
本实施例实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
对于S1,可以获取用户输入的待检测DDL脚本,也可以从数据库中获取待检测DDL脚本,还可以从第三方应用中获取待检测DDL脚本。
待检测DDL脚本,也就是需要进行字段注释检测的SQL文件。SQL文件,是.sql格式的文件。SQL文件是hive(基于Hadoop的一个数据仓库工具)中的文件。
对于S2,对所述待检测DDL脚本进行字段注释关键字计算,得到字段注释实际数量;对所述待检测DDL脚本中的新增模型表、新增视图、模型表新增字段对应的所有字段及表名进行数量计算,得到字段注释需求数量。
对于S3,判断所述字段注释需求数量是否等于所述字段注释实际数量,也就是判断新增模型表、新增视图、模型表新增字段对应的所有字段及表名的数量是否等于所述待检测DDL脚本中的字段注释关键字的数量。
对于S4,若是,也就是所述字段注释需求数量等于所述字段注释实际数量,此时意味着所述待检测DDL脚本中的字段注释的实际数量和需求数量一致,因此,确定字段注释检测结果的检测结论为成功。
字段注释检测结果包括:检测结论和失败记录。检测结论的值只有一个,检测结论的取值范围包括:是和否。若检测结论为是,则字段注释检测结果中的失败记录为空;若检测结论为否,则字段注释检测结果中的失败记录不为空。
对于S5,若否,也就是所述字段注释需求数量不等于所述字段注释实际数量,此时意味着所述待检测DDL脚本中的字段注释的实际数量和需求数量不一致,则确定所述字段注释检测结果的所述检测结论为失败,并且将所述待检测DDL脚本的脚本名称及存储地址作为关联数据添加到所述字段注释检测结果的失败记录中。
若待检测DDL脚本存储在本地,则将所述待检测DDL脚本的脚本名称及绝对地址作为关联数据添加到所述字段注释检测结果的失败记录中。
可以理解的是,本申请可以采用Java(面向对象的编程语言)实现,也可以采用其他程序语言实现。
在一个实施例中,上述获取待检测DDL脚本的步骤,包括:
S11:获取DDL脚本目录地址;
S12:根据所述DDL脚本目录地址获取数据包,作为待处理数据包;
S13:对所述待处理数据包中的回滚文件夹进行删除处理,得到待分析数据包;
S14:从所述待分析数据包中查找每个SQL文件,作为目标DDL脚本;
S15:将任一个所述目标DDL脚本作为所述待检测DDL脚本。
本实施例通过将DDL脚本目录地址下的回滚文件夹以外的SQL文件作为目标DDL脚本,从而实现了自动化识别目标DDL脚本作为待检测DDL脚本;而且整个过程只需要输入DDL脚本目录地址即可进行多个SQL文件的字段注释检测,简化了操作,提高了本申请的自动化程度。
对于S11,可以获取用户输入的DDL脚本目录地址,也可以从第三方应用中获取DDL脚本目录地址,还可以从数据库中获取DDL脚本目录地址,还可以将DDL脚本目录地址写入实现本申请的程序中。
DDL脚本目录地址,是存放DDL脚本的地址。
对于S12,获取所述DDL脚本目录地址下的所有文件夹和所有文件,将获取的数据作为待处理数据包。
其中,当本申请采用Java实现时,采用file.list()从所述DDL脚本目录地址获取数据包。
对于S13,对所述待处理数据包中的回滚文件夹进行删除处理,将完成删除处理的所述待处理数据包作为待分析数据包。
回滚文件夹,也称为rollback文件夹,用于存放用于进行回滚操作的脚本。回滚文件夹中也可能包含SQL文件,这部分SQL文件不需要关注,因此本步骤先删除了回滚文件夹中的所有文件。
对于S14,从所述待分析数据包中查找每个SQL文件,也就是查找.sql格式的文件,将查找到的每个SQL文件作为一个目标DDL脚本。
对于S15,将任一个所述目标DDL脚本作为所述待检测DDL脚本,从而实现每次对一个SQL文件进行字段注释检测。
在一个实施例中,上述对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算的步骤,包括:
S21:对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串;
S22:根据所述待处理字符串生成SQL代码列表,其中,所述SQL代码列表中的每个元素是一条SQL代码;
S23:根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算。
本实施例先进行预处理及生成不换行的字符串,然后生成SQL代码列表,最后根据SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算,通过预处理避免噪声数据对字段注释需求数量及字段注释实际数量的准确性的影响,通过生成不换行的字符串有利于快速、准确的计算字段注释需求数量及字段注释实际数量。
对于S21,对所述待检测DDL脚本进行预处理,对预处理得到的数据生成不换行的字符串,将生成的字符串作为待处理字符串。
预处理包括但不限于:删除代码注释、删除引号内字符串、删除影响计算的函数。影响计算的函数包括:带逗号的函数。删除引号内字符串,也就是删除引号内的所有内容,这部分内容可能带有逗号,会影响字段注释需求数量及字段注释实际数量计算的准确性。
对于S22,每个所述待检测DDL脚本包括一条或多条SQL代码,如果是包括多条SQL代码,则每条SQL代码之间都会有分号,因此,把所述待处理字符串中的多条SQL代码,分别存入一个SQL代码列表中。
当本申请采用Java实现时,可以采用string.split(";")方法,把所述待处理字符串中的多条SQL代码,分别存入一个SQL代码列表中。
对于S23,先确定所述SQL代码列表中的每条代码的脚本类型,然后根据所述SQL代码列表中的每条代码及该条代码对应的脚本类型,分别进行字段注释的需求数量和实际数量的计算,将各条代码的需求数量进行相加得到所述字段注释需求数量,将各条代码的实际数量进行相加得到所述字段注释实际数量。
在一个实施例中,上述对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串的步骤,包括:
S211:采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码;
S212:对所述第一代码进行单引号中的字符串的删除处理,得到第二代码;
S213:判断所述第二代码是否存在预设的代码注释符;
S214:若是,则从所述第二代码中获取所述代码注释符之前的代码,作为第三代码;
S215:若否,则将所述第二代码作为所述第三代码;
S216:对所述第三代码进行带逗号的函数的删除处理,得到第四代码;
S217:重复执行所述采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码的步骤,直至完成所述待检测DDL脚本中的代码的获取;
S218:将各个所述第四代码进行不换行的字符串的拼接,得到待转换字符串;
S219:对所述待转换字符串中的字母进行大写字母转换,得到所述待处理字符串。
本实施例对所述待检测DDL脚本进行删除代码注释、删除引号内字符串、删除影响计算的函数,然后将完成预处理的各个所述第四代码进行不换行的字符串的拼接,最后对拼接的字符串进行大写字母转换,从而减少了字符串中的噪声数据。
对于S211,采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,将获取的代码作为第一代码。
其中,当本申请采用Java实现时,采用readLine方法,从所述待检测DDL脚本中读取一行代码,作为第一代码。
readLine方法,也就是逐行扫描的方法。
对于S212,采用预设的单引号中的字符串删除方法,对所述第一代码进行单引号中的字符串的删除处理,将完成处理的所述第一代码作为第二代码。
其中,当本申请采用Java实现时,通过replaceall方法,删除所述第一代码中的单引号中的字符串。
replaceall方法,也就是全部替换方法。
对于S213,可选的,代码注释符为--。
其中,判断所述第二代码是否存在字符“--”。
当本申请采用Java实现时,采用contains方法判断所述第二代码是否存在预设的代码注释符。
contains方法,用来判断集合中是否含有某元素,若有则返回true,没有则返回false。
对于S214,若是,也就是所述第二代码存在预设的代码注释符,此时意味着所述第二代码中包含代码注释,则从所述第二代码中获取所述代码注释符之前的代码,将获取的代码作为第三代码。从而得到不包含代码注释的第三代码。
当本申请采用Java实现时,采用indexOf方法获取代码注释符的位置,然后采用substring方法截取该位置之前的代码,将截取的代码作为第三代码。
indexOf方法,用于可返回某个指定的字符串值在字符串中首次出现的位置。
substring方法,用于提取字符串中介于两个指定下标之间的字符。
对于S215,若否,也就是所述第二代码不存在预设的代码注释符,此时意味着所述第二代码中不包含代码注释,则将所述第二代码作为所述第三代码。
对于S216,本申请采用逗号作为字段注释需求数量的一个计算基础,带逗号的函数中带有逗号,带逗号的函数是会影响字段注释需求数量的准确性的噪声数据,因此需要对带逗号的函数的删除处理。
其中,采用预设的带逗号的函数删除正则表达式,对所述第三代码进行带逗号的函数的删除处理,将完成处理的所述第三代码作为第四代码。
对于S217,重复执行所述采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码的步骤,也就是重复执行步骤S211至步骤S217,直至完成所述待检测DDL脚本中的代码的获取。当完成所述待检测DDL脚本中的代码的获取时,意味着确定了所述待检测DDL脚本中的每条代码对应的第四代码,此时停止重复执行步骤S211至步骤S217,开始执行步骤S218。
对于S218,将各个所述第四代码进行不换行的字符串的拼接,将拼接得到的字符串作为待转换字符串。
对于S219,对所述待转换字符串中的字母进行大写字母转换,将完成转换后的所述待转换字符串作为所述待处理字符串,从而得到字母全部为大写字母的待处理字符串。
在一个实施例中,上述根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算的步骤,包括:
S231:从所述SQL代码列表中获取一个元素,作为目标SQL代码;
S232:对所述目标SQL代码进行脚本类型识别,得到目标脚本类型;
S233:对所述目标SQL代码进行逗号的数量计算,得到待分析逗号数量;
S234:根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量;
S235:对所述目标SQL代码进行字段注释关键字的数量计算,得到单条实际数量;
S236:将所述SQL代码列表对应的各个所述单条需求数量进行相加,得到所述字段注释需求数量;
S237:将所述SQL代码列表对应的各个所述单条实际数量进行相加,得到所述字段注释实际数量。
本实施例先确定所述SQL代码列表中的每条代码的脚本类型,然后根据所述SQL代码列表中的每条代码及该条代码对应的脚本类型,分别进行字段注释的需求数量和实际数量的计算,将各条代码的需求数量进行相加得到所述字段注释需求数量,将各条代码的实际数量进行相加得到所述字段注释实际数量,从而准确的确定了所述字段注释需求数量及所述字段注释实际数量。
对于S231,依次从所述SQL代码列表中获取一个元素,将获取的元素中的代码作为目标SQL代码。
对于S232,采用预设的DDL脚本的脚本类型识别方法,对所述目标SQL代码进行脚本类型识别,将识别得到的脚本类型作为目标脚本类型。
DDL脚本的脚本类型包括:创建视图脚本、建表脚本、增加字段脚本和其他脚本。
对于S233,对所述目标SQL代码进行逗号的数量计算,将计算得到的数量作为待分析逗号数量。
对于S234,采用与所述目标脚本类型对应的需求数量计算方法,根据所述待分析逗号数量计算字段注释的需求数量,将计算得到的数量作为单条需求数量。
对于S235,计算所述目标SQL代码中包含的字段注释关键字的数量,将计算的数量作为单条实际数量。
可选的,字段注释关键字为comment。
也就是说,重复执行步骤S231至步骤S235,可以计算出所述SQL代码列表中的每条代码对应的所述单条需求数量及所述单条实际数量。
对于S236,将所述SQL代码列表对应的各个所述单条需求数量进行相加,将相加得到的数据作为所述字段注释需求数量。
对于S237,将所述SQL代码列表对应的各个所述单条实际数量进行相加,将相加得到的数据作为所述字段注释实际数量。
在一个实施例中,上述根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量的步骤,包括:
S2341:若所述目标脚本类型为创建视图脚本或建表脚本,则将所述待分析逗号数量加2,得到所述单条需求数量;
S2342:若所述目标脚本类型为增加字段脚本,则将所述待分析逗号数量加1,得到所述单条需求数量。
本实施例在目标脚本类型为创建视图脚本或建表脚本时将待分析逗号数量加2作为单条需求数量,在目标脚本类型为增加字段脚本时将所述待分析逗号数量加1作为单条需求数量,从而计算出了一条代码对应的字段注释的需求数量。
对于S2341,所述待分析逗号数量加1就是字段数量,若所述目标脚本类型为创建视图脚本或建表脚本,需要注释字段和表名,因此,若所述目标脚本类型为创建视图脚本或建表脚本,则将所述待分析逗号数量加2,将相加得到的数据作为所述单条需求数量。
对于S2342,所述待分析逗号数量加1就是字段数量,若所述目标脚本类型为增加字段脚本时,只需要注释字段,因此,将所述待分析逗号数量加1,将相加得到的数据作为所述单条需求数量。
在一个实施例中,上述对所述目标SQL代码进行脚本类型识别,得到目标脚本类型的步骤,包括:
S2321:判断所述目标SQL代码的开头是否包含预设的创建关键字,以及所述目标SQL代码中是否包括预设的视图关键字;
S2322:若均为是,则确定所述目标脚本类型为创建视图脚本;
S2323:若任一个为否,则判断所述目标SQL代码的开头是否包含所述创建关键字,以及所述目标SQL代码中是否包括预设的表格关键字;
S2324:若均为是,则确定所述目标脚本类型为建表脚本;
S2325:若任一个为否,则判断所述目标SQL代码的开头是否包含预设的添加表关键字,以及所述目标SQL代码是否未包含预设的设置关键字、未包含预设的删除关键字及包含所述表格关键字;
S2326:若均为是,则确定所述目标脚本类型为增加字段脚本;
S2327:若任一个为否,则确定所述目标脚本类型为其他脚本。
本实施例根据判断脚本类型的关键字,对所述目标SQL代码进行脚本类型识别,从而实现了自动化进行脚本类型识别。
对于S2321,可选的,创建关键字为create,视图关键字为view。
其中,判断所述目标SQL代码的开头是否包含预设的创建关键字,以及所述目标SQL代码中是否包括预设的视图关键字,也就是判断所述目标脚本类型是否为创建视图脚本。
对于S2322,若均为是,也就是所述目标SQL代码的开头包含预设的创建关键字,以及所述目标SQL代码中包括预设的视图关键字,此时意味着所述目标SQL代码是要创建一个视图,因此,确定所述目标脚本类型为创建视图脚本。
对于S2323,若任一个为否,也就是所述目标SQL代码的开头不包含预设的创建关键字,或者所述目标SQL代码中不包括预设的视图关键字,此时意味着所述目标SQL代码不是创建一个视图,因此,判断所述目标SQL代码的开头是否包含所述创建关键字,以及所述目标SQL代码中是否包括预设的表格关键字,也就是判断所述目标脚本类型是否为建表脚本。
可选的,表格关键字为table。
对于S2324,若均为是,也就是所述目标SQL代码的开头包含所述创建关键字,以及所述目标SQL代码中包括预设的表格关键字,此时意味着所述目标SQL代码是要创建一个表,因此,确定所述目标脚本类型为建表脚本。
对于S2325,若任一个为否,也就是所述目标SQL代码的开头不包含所述创建关键字,或者所述目标SQL代码中不包括预设的表格关键字,此时意味着所述目标SQL代码不是创建一个表,因此,判断所述目标SQL代码的开头是否包含预设的添加表关键字,以及所述目标SQL代码是否未包含预设的设置关键字、未包含预设的删除关键字及包含所述表格关键字,也就是判断所述目标脚本类型是否为增加字段脚本。
可选的,添加表关键字为alter,设置关键字为set,删除关键字为drop。
对于S2326,若均为是,也就是所述目标SQL代码的开头包含预设的添加表关键字,以及所述目标SQL代码未包含预设的设置关键字、未包含预设的删除关键字及包含所述表格关键字,此时意味着所述目标SQL代码要创建一个字段,因此,确定所述目标脚本类型为增加字段脚本。
对于S2327,若任一个为否,也就是所述目标SQL代码的开头不包含预设的添加表关键字,或者所述目标SQL代码包含预设的设置关键字,或者所述目标SQL代码包含预设的删除关键字,或者所述目标SQL代码不包含所述表格关键字,此时意味着所述目标SQL代码不是要创建一个字段,则确定所述目标脚本类型为其他脚本。
参照图2,本申请还提出了一种DDL脚本的字段注释检测装置,所述装置包括:
数据获取模块100,用于获取待检测DDL脚本;
数量计算模块200,用于对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
判断模块300,用于判断所述字段注释需求数量是否等于所述字段注释实际数量;
第一结果确认模块400,用于若所述字段注释需求数量等于所述字段注释实际数量,则确定字段注释检测结果的检测结论为成功;
第二结果确认模块500,若所述字段注释需求数量不等于所述字段注释实际数量,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
本实施例实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存DDL脚本的字段注释检测方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种DDL脚本的字段注释检测方法。所述DDL脚本的字段注释检测方法,包括:获取待检测DDL脚本;对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;判断所述字段注释需求数量是否等于所述字段注释实际数量;若是,则确定字段注释检测结果的检测结论为成功;若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
本实施例实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种DDL脚本的字段注释检测方法,包括步骤:获取待检测DDL脚本;对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;判断所述字段注释需求数量是否等于所述字段注释实际数量;若是,则确定字段注释检测结果的检测结论为成功;若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
上述执行的DDL脚本的字段注释检测方法,实现了采用统一的标准自动化对DDL脚本进行是否添加字段注释的校验,避免出现遗漏,提高了校验的准确性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种DDL脚本的字段注释检测方法,其特征在于,所述方法包括:
获取待检测DDL脚本;
对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
判断所述字段注释需求数量是否等于所述字段注释实际数量;
若是,则确定字段注释检测结果的检测结论为成功;
若否,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
2.根据权利要求1所述的DDL脚本的字段注释检测方法,其特征在于,所述获取待检测DDL脚本的步骤,包括:
获取DDL脚本目录地址;
根据所述DDL脚本目录地址获取数据包,作为待处理数据包;
对所述待处理数据包中的回滚文件夹进行删除处理,得到待分析数据包;
从所述待分析数据包中查找每个SQL文件,作为目标DDL脚本;
将任一个所述目标DDL脚本作为所述待检测DDL脚本。
3.根据权利要求1所述的DDL脚本的字段注释检测方法,其特征在于,所述对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算的步骤,包括:
对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串;
根据所述待处理字符串生成SQL代码列表,其中,所述SQL代码列表中的每个元素是一条SQL代码;
根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算。
4.根据权利要求3所述的DDL脚本的字段注释检测方法,其特征在于,所述对所述待检测DDL脚本进行预处理及生成不换行的字符串,得到待处理字符串的步骤,包括:
采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码;
对所述第一代码进行单引号中的字符串的删除处理,得到第二代码;
判断所述第二代码是否存在预设的代码注释符;
若是,则从所述第二代码中获取所述代码注释符之前的代码,作为第三代码;
若否,则将所述第二代码作为所述第三代码;
对所述第三代码进行带逗号的函数的删除处理,得到第四代码;
重复执行所述采用逐行扫描的方法,从所述待检测DDL脚本中读取一行代码,作为第一代码的步骤,直至完成所述待检测DDL脚本中的代码的获取;
将各个所述第四代码进行不换行的字符串的拼接,得到待转换字符串;
对所述待转换字符串中的字母进行大写字母转换,得到所述待处理字符串。
5.根据权利要求3所述的DDL脚本的字段注释检测方法,其特征在于,所述根据所述SQL代码列表进行所述字段注释需求数量及所述字段注释实际数量的计算的步骤,包括:
从所述SQL代码列表中获取一个元素,作为目标SQL代码;
对所述目标SQL代码进行脚本类型识别,得到目标脚本类型;
对所述目标SQL代码进行逗号的数量计算,得到待分析逗号数量;
根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量;
对所述目标SQL代码进行字段注释关键字的数量计算,得到单条实际数量;
将所述SQL代码列表对应的各个所述单条需求数量进行相加,得到所述字段注释需求数量;
将所述SQL代码列表对应的各个所述单条实际数量进行相加,得到所述字段注释实际数量。
6.根据权利要求5所述的DDL脚本的字段注释检测方法,其特征在于,所述根据所述目标脚本类型和所述待分析逗号数量计算单条需求数量的步骤,包括:
若所述目标脚本类型为创建视图脚本或建表脚本,则将所述待分析逗号数量加2,得到所述单条需求数量;
若所述目标脚本类型为增加字段脚本,则将所述待分析逗号数量加1,得到所述单条需求数量。
7.根据权利要求5所述的DDL脚本的字段注释检测方法,其特征在于,所述对所述目标SQL代码进行脚本类型识别,得到目标脚本类型的步骤,包括:
判断所述目标SQL代码的开头是否包含预设的创建关键字,以及所述目标SQL代码中是否包括预设的视图关键字;
若均为是,则确定所述目标脚本类型为创建视图脚本;
若任一个为否,则判断所述目标SQL代码的开头是否包含所述创建关键字,以及所述目标SQL代码中是否包括预设的表格关键字;
若均为是,则确定所述目标脚本类型为建表脚本;
若任一个为否,则判断所述目标SQL代码的开头是否包含预设的添加表关键字,以及所述目标SQL代码是否未包含预设的设置关键字、未包含预设的删除关键字及包含所述表格关键字;
若均为是,则确定所述目标脚本类型为增加字段脚本;
若任一个为否,则确定所述目标脚本类型为其他脚本。
8.一种DDL脚本的字段注释检测装置,其特征在于,所述装置包括:
数据获取模块,用于获取待检测DDL脚本;
数量计算模块,用于对所述待检测DDL脚本进行字段注释需求数量及字段注释实际数量的计算;
判断模块,用于判断所述字段注释需求数量是否等于所述字段注释实际数量;
第一结果确认模块,用于若所述字段注释需求数量等于所述字段注释实际数量,则确定字段注释检测结果的检测结论为成功;
第二结果确认模块,若所述字段注释需求数量不等于所述字段注释实际数量,则确定所述字段注释检测结果的所述检测结论为失败,根据所述待检测DDL脚本的脚本名称及存储地址,确定所述字段注释检测结果的失败记录。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210588978.9A CN114968346A (zh) | 2022-05-26 | 2022-05-26 | Ddl脚本的字段注释检测方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210588978.9A CN114968346A (zh) | 2022-05-26 | 2022-05-26 | Ddl脚本的字段注释检测方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968346A true CN114968346A (zh) | 2022-08-30 |
Family
ID=82955384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210588978.9A Pending CN114968346A (zh) | 2022-05-26 | 2022-05-26 | Ddl脚本的字段注释检测方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968346A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401177A (zh) * | 2023-06-09 | 2023-07-07 | 瀚高基础软件股份有限公司 | 一种ddl正确性检测方法、设备及介质 |
-
2022
- 2022-05-26 CN CN202210588978.9A patent/CN114968346A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116401177A (zh) * | 2023-06-09 | 2023-07-07 | 瀚高基础软件股份有限公司 | 一种ddl正确性检测方法、设备及介质 |
CN116401177B (zh) * | 2023-06-09 | 2023-08-15 | 瀚高基础软件股份有限公司 | 一种ddl正确性检测方法、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111563051B (zh) | 基于爬虫的数据核验方法、装置、计算机设备及存储介质 | |
CN110321408B (zh) | 基于知识图谱的搜索方法、装置、计算机设备和存储介质 | |
US11709880B2 (en) | Method of image searching based on artificial intelligence and apparatus for performing the same | |
CN112181489B (zh) | 代码迁移方法、装置、计算机设备及存储介质 | |
WO2019153979A1 (zh) | 文本翻译方法、装置、计算机设备和存储介质 | |
CN112883030A (zh) | 数据收集方法、装置、计算机设备和存储介质 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN108399125B (zh) | 自动化测试方法、装置、计算机设备和存储介质 | |
CN116226170A (zh) | 一种数据库语句转换方法、装置、电子设备及存储介质 | |
CN114968346A (zh) | Ddl脚本的字段注释检测方法、装置、设备及存储介质 | |
US20210174013A1 (en) | Information processing apparatus and non-transitory computer readable medium storing program | |
CN112580363A (zh) | 需求文档处理方法、装置、计算机设备及存储介质 | |
CN113434395A (zh) | 测试用例的自动化生成方法、装置、设备及介质 | |
CN111324375A (zh) | 代码管理方法、装置、计算机设备和存储介质 | |
CN113505078B (zh) | 配置文件更新方法、装置、设备及存储介质 | |
CN111984659B (zh) | 数据更新方法、装置、计算机设备和存储介质 | |
CN114003692A (zh) | 合同文本信息的处理方法、装置、计算机设备及存储介质 | |
CN112541739B (zh) | 问答意图分类模型的测试方法、装置、设备及介质 | |
CN113255742A (zh) | 一种政策匹配度计算方法、系统、计算机设备和存储介质 | |
CN111158642A (zh) | 数据构造方法、装置、计算机设备和存储介质 | |
CN111831687A (zh) | 数据查询的优化方法、装置、计算机设备和存储介质 | |
CN107203405A (zh) | 一种检查多语言定义的方法和装置 | |
CN113127453B (zh) | Oracle数据跨数据库迁移的方法、装置、设备和存储介质 | |
CN112363929B (zh) | 系统上线方法、装置、计算机设备及存储介质 | |
CN115129598A (zh) | 一种sql语句的风险检测方法、装置、系统及介质 |
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 |