Oracle中的USER_ARGUMENTS 与 PG中pg_proc 字段转换

昨天将oracle中的sql进行pg库的转化,碰到了系统表记录不同 的问题,记录一下。
Oracle USER_ARGUMENTS 记录当前用户能够访问的函数(存储过程)的一些参数信息(参数名称 参数类型 存储过程的名称 等等)。
pg_proc 这张表类似,但是记录的东西确很杂,记录数据的方式也不同。所以就有需要对pg_proc官方文档 表进行研究对比后 才好解决问题。
下面上实例:
Oracle:
在这里插入图片描述
oracle的视图
oracle的数据是竖装的 多行 分开存储
PG:

在这里插入图片描述

在这里插入图片描述
pg的数据是单行 集中存储
对于oracle中一些字段转化成pg库的 几个比较常用的已经整理了,没有找到你需要的可以去查官方文档。
proname 函数名称
proargnames 参数名称
proallargtypes 参数类型 (尤为注意参数类型是 proallargtypes pg库中还有一个类似的字段,但这个才是类型)
proargmodes 参数方向

oracle 就比较明显
OBJECT_NAME 函数名称
ARGUMENT_NAME 参数名称
DATA_TYPE 参数类型
IN_OUT 参数方向

好了字段数据查询完了之后 就是对数据解析进行处理 由单行多数据 转换成多行数据。
在这里插入图片描述
想要知道几行数据 对参数名称这个字段的数量进行获取就行了,有几个参数名称 就会有几个参数类型,参数方向。
pg中存储的i o 转换成对应的 IN OUT
pg中的参数类型存储的是数字 对应的是 pg_type表中的oid
所以我们需要去pg_type表中查询出数字对应的参数类型
String osql = “select TYPNAME from pg_type where oid = ?”;
对于大括号的截取 利用转义字符就可以了。
today 2020-04-28

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值