首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL函数数据类型

问PostgreSQL函数数据类型
EN

Stack Overflow用户
提问于 2015-05-15 13:21:09
回答 1查看 188关注 0票数 2

如何获取在PostgreSQL函数中使用的所有变量的名称和数据类型?在pg_proc中遍历prosrc列是一种方法。有没有更好的视图,它以一种易于查询/过滤的格式存储信息?PostgreSQL版本为9.0。

EN

回答 1

Stack Overflow用户

发布于 2015-05-15 16:04:05

不,在PostgreSQL中没有内置的方法来做到这一点。函数体被存储为文本字符串,而无需将其解析为其组件。显然,您可以解析出变量名称和数据类型,但这需要一些严格的解析。

对于PL/pgSQL:

  1. 读取第一个单词(即,第一个单词与下一个单词之间用空格分隔);如果是declare,则继续读取,直到单词begin.
  2. Read下一个单词,这是变量的名称。
  3. 读取所有内容,直到逗号, (将一个变量与另一个变量分隔)或单词begin (变量结束),但忽略括号()中的逗号,因为它们与变量的初始化或数据类型修饰符(如numeric(8, 2))相关联。这是一种数据类型,带有它的所有修饰符和在上一步中读取的任何initialization.
  4. From,提取到:=之前的所有内容。前面的都是数据类型和任何修饰符,后面的都是从步骤2到遇到单词begin.

的初始value.

  • Repeat

在单个过程中可能有嵌套的块,因此您必须对主体中的每个块重复此过程。

对于其他语言,如PL/Perl、PL/Tcl和PL/Python,您必须根据该语法来解析变量。此外,还有一些带有过程化语言的附加模块,如PL/R或PL/Sh,它们的语法也不同。

这显然不是通过查询中的简单reg_exp完成的,而是需要一些更高级的逻辑处理。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30252011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档