创建自定义数据类型的方法及装置制造方法及图纸

技术编号:32969512 阅读:29 留言:0更新日期:2022-04-09 11:32
本发明专利技术提出了一种创建自定义数据类型的方法及装置,方法,包括:S100,创建自定义数据类型头,包括创建成员属性和创建成员函数头;S200,创建自定义类型函数体,包括:判断数据类型是否存在,若不存在,则报错;若存在,则判断函数体是否存在,若不存在,则创建函数体;若存在,则判断是否进行replace,若否,则报错,若是,更新函数体。本发明专利技术在原来功能的基础上,重新设计语法和功能,无论是使用postgresql创建自定义数据类型的语法还是使用oracle创建自定义数据类型的语法都可以兼容。极大的提高了数据库的兼容性,提升了产品竞争力。提升了产品竞争力。提升了产品竞争力。

【技术实现步骤摘要】
创建自定义数据类型的方法及装置


[0001]本专利技术涉及数据库
,尤其涉及一种创建自定义数据类型的方法及装置。

技术介绍

[0002]自定义数据类型即用户自己创建的数据类型,其包括成员属性和成员函数,成员属性即自定义数据类型里定义的变量,成员函数则包括constructor function、member/static function、member/static procedure、map/order member function,对于每一种函数、过程在自定义数据类型中代表的意义都不一样。
[0003]postgresql数据库中使用【create type name as(属性1,属性2,...);】来创建自定义数据类型,对于同模式下同名的类型,无法创建成功,也无法使用replace功能,该语法进一步限制了类型的创建。
[0004]oracle数据库中使用【create type name as object(属性1,属性2,...,成员函数,...);】来创建自定义数据类型头,对于成员函数,需要使用【create本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种创建自定义数据类型的方法,包括:S100,创建自定义数据类型头,包括创建成员属性和创建成员函数头;S200,创建自定义类型函数体,包括:判断数据类型是否存在,若不存在,则报错;若存在,则判断函数体是否存在,若不存在,则创建函数体;若存在,则判断是否进行replace,若否,则报错,若是,更新函数体。2.根据权利要求1所述的创建自定义数据类型的方法,其特征在于,步骤S100中,创建成员属性具体包括:S111,根据自定义数据类型,在pg_type表、pg_class表和pg_attribute表中插入相应的数据;S112,获取pg_type表中自定义数据类型的oid,取得类型名、类型模式,在pg_namespace表中创建与类型名、类型模式相同的伪模式;S113,判断是否有成员函数头,没有则结束,有则创建成员函数头。3.根据权利要求2所述的创建自定义数据类型的方法,其特征在于,步骤S100中,创建成员函数头具体包括:S121,从pg_namespace中获取与类型名、类型模式相同的伪模式,为成员函数头定义promemberkind值;S122,进行函数创建流程,在pg_proc表中插入相应数据;S123,从创建完函数头返回的数据结构中取得函数的oid,把oid更新到pg_namespace表的nspobjecthead字段中。4.根据权利要求3所述的创建自定义数据类型的方法,其特征在于,步骤S200中,判断函数体是否存在包括:S211,根据自定义数据类型的类型名、类型模式从pg_namespace表中获取nspobjecthead字段值;S212,判断成员函数是否在创建的类型头里有声明,如果没有声明,提示错误,如果有声明,则更新或创建函数体。5.根据权利要求4所述的创建自定义数据类型的方法,其特征在于,函数体的创建方法包括:S221,填充pg_proc表中的prosrc字段值;S222,从返回的数据结构中取得函数的oid,并更新到pg_namespace表的nspobjectbody字段中...

【专利技术属性】
技术研发人员:颜学彪敖兵罗陶
申请(专利权)人:瀚高基础软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1