[发明专利]一种数据库中PG/SQL转换为PL/PGSQL的方法及装置在审
申请号: | 202310455173.1 | 申请日: | 2023-04-25 |
公开(公告)号: | CN116483371A | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 王帅;王颖泽;苗健;吕新杰 | 申请(专利权)人: | 瀚高基础软件股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/30;G06F16/242 |
代理公司: | 工业和信息化部电子专利中心 11010 | 代理人: | 袁鸿 |
地址: | 250101 山东省济南市高新区舜泰北路*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 pg sql 转换 pl pgsql 方法 装置 | ||
本申请公开了一种数据库中PG/SQL转换为PL/PGSQL的方法及装置,包括如下步骤:预先在数据库配置PL/SQL转换函数和PL/SQL语法解析器;获取转换请求,在确定所述转换请求为PL/SQL语句的情况下,利用所述PL/SQL语法解析器,根据PL/SQL语法规则将所述PL/SQL语句解析为PL/SQL语法树;利用所述PL/SQL语法转换函数,基于解析的PL/SQL语法树,提取PL/SQL语法树中的元素,并根据PL/PGSQL规则将其拼装为PL/PGSQL语句,以完成转换。本申请的方法能够在数据库内部中实现PL/SQL转换PL/PGSQL,执行效率高、转换率高且无需单独部署,使用简单。
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库中PG/SQL转换为PL/PGSQL的方法及装置。
背景技术
目前许多的数据库是基于开源数据库PostgreSQL研发而来,并期望通过在PostgreSQL的基础上添加Oracle特性功能,以达到替换Oracle的目的,但是PostgreSQL的PL/PGSQL和Oracle的PL/SQL存在一定的差距,要想完全兼容Oracle是需要特别长的周期甚至可以说是无法达到的目标,PL/SQL语法无法在PostgreSQL及基于PostgreSQL研发的数据库系统中使用。
PostgreSQL接收到PL/PGSQL后,通过语法解析器将PL/PGSQL解析为语法树,执行器根据语法树组织执行信息并执行PL/PGSQL或可以通过dump函数将PL/PGSQL信息输出。
在数据库中,SQL语言是一门独立的语言,一般指结构化查询语句。所有的数据库都支持SQL语言操作数据;PL/SQL是一种程序语言,是一种过程化SQL语言(ProceduralLanguage/SQL),PL/SQL是Oracle数据库对SQL语言的扩展,PL/SQL是Oracle特有的,所以其他数据库无法执行PL/SQL语句。
PL/PGSQL也是一种过程语言,也是一种过程化SQL语言(Procedural Language/Postgres SQL),PL/PGSQL是PostgreSQL数据库对SQL语言的扩展。
现有技术中PostgreSQL的解析器是基于PL/PGSQL规则去解析SQL,当输入为PL/SQL时,PostgreSQL的解析器无法正确解析PL/SQL,进而导致PostgreSQL无法获取PL/SQL信息或无法执行PL/SQL。
发明内容
本申请实施例提供一种数据库中PG/SQL转换为PL/PGSQL的方法及装置,设置解析器根据PL/SQL语法规则将PL/SQL转换为语法树,然后通过PL/PGSQL规则分析语法树并生成PL/PGSQL,能够在数据库内部中实现PL/SQL转换PL/PGSQL,执行效率高、转换率高且无需单独部署,使用简单。
本申请实施例提供一种数据库中PG/SQL转换为PL/PGSQL的方法,包括如下步骤:
预先在数据库配置PL/SQL转换函数和PL/SQL语法解析器,其中所述PL/SQL语法解析器中配置有PL/SQL语法转换函数,且包含PL/SQL的语法规则和PL/PGSQL语法规则;
利用所述PL/SQL转换函数获取转换请求,在确定所述转换请求为PL/SQL语句的情况下,利用所述PL/SQL语法解析器,根据PL/SQL语法规则将所述PL/SQL语句解析为PL/SQL语法树;
利用所述PL/SQL语法转换函数,基于解析的PL/SQL语法树,提取PL/SQL语法树中的元素,并根据PL/PGSQL规则将其拼装为PL/PGSQL语句,以完成转换。
可选的,获取转换请求之后,在确定所述转换请求不为PL/SQL语句的情况下,返回原SQL语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于瀚高基础软件股份有限公司,未经瀚高基础软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310455173.1/2.html,转载请声明来源钻瓜专利网。