oracle将restful接口封装到视图中

oracle环境下有时候会需要访问到第三方发布webservice接口,有时候我们突发奇想,要是访问这些接口就如访问本地表一样就好了,如下是实现方法

数据示例

如下是一段是一个接口返回的简单的实例

{
    "code": 200,
    "data": [
        {
            "parent": "B01",
            "name": "xxxxx",
            "code": "B0101",
            "enable_flag": "Y",
            "los_date": ""
        },
        {
            "parent": "B0101",
            "name": "gggggggggg",
            "code": "B010105",
            "enable_flag": "Y",
            "los_date": ""
        }
    ]
}

具体实现

这里用到了两个工具:oracle apex 和 三方开源库 pljson,轻松实现

CREATE OR REPLACE VIEW XXXXX_V AS
SELECT json.status_code,
         budget_dept_code,
         budget_dept_name,
         parent_code,
         enable_flag,
         end_active_date
    FROM TABLE(pljson_table.json_table(apex_web_service.make_rest_request(p_url         => 'https://blog.csdn.net/x6_9x',
                                                                          p_http_method => 'GET',
                                                                          p_wallet_path => xxx_ysx_yyds.get_wallet_path,
                                                                          p_wallet_pwd  => xxx_ysx_yyds.get_wallet_pwd),
                                       pljson_varray('code',
                                                     'data[*].code',
                                                     'data[*].name',
                                                     'data[*].parent',
                                                     'data[*].enable_flag',
                                                     'data[*].los_date'),
                                       pljson_varray('status_code',
                                                     'budget_dept_code',
                                                     'budget_dept_name',
                                                     'parent_code',
                                                     'enable_flag',
                                                     'end_active_date'),
                                       table_mode => 'nested')) json

   ORDER BY 2;

如果是要消费的是https接口,则需要配置oracle钱包导入证书,这里也支持带参数的接口,可以把参数放到where条件中,具体可以参考apex_web_service.make_rest_request的用法
这样就实现了像写sql一样来访问webservice数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贤时间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值