【问题标题】:Azure Logic Apps - Oracle Connector - Execute a queryAzure 逻辑应用 - Oracle 连接器 - 执行查询
【发布时间】:2021-09-30 14:32:43
【问题描述】:

我正在开发一个 Azure 逻辑应用集成,它将数据插入到本地 Oracle 数据库中。 我可以成功运行逻辑应用集成并将数据插入到我们的 Oracle 表(自定义暂存表)中。

我想在插入新数据之前对该表进行截断。 我添加了 Oracle - Execute a Oracle Query 组件,然后提供了以下查询: 截断表 .;

部署到 Azure 后,在 Execute a Oracle Query 上集成失败并出现错误:

"message": "BadGateway",
"innerError": {
"status": 502,
"message": "Unable to find the requested .Net Framework Data Provider. It may not be installed.\r\n inner exception: Unable to find the requested .Net Framework Data Provider. It may not be installed....",

如果我删除 Execute a Oracle Query 组件,Oracle Insert row 组件可以正常工作。 我不知道为什么它说网关可能没有安装。我怀疑这是一个严重陷入错误消息。

Execute a Oracle Query 应该是这样使用的吗? 否则,如何执行截断或如何调试此错误消息?

谢谢!

【问题讨论】:

    标签: oracle azure azure-logic-apps


    【解决方案1】:

    适用于 Azure 逻辑应用的 Oracle 连接器不支持 DDL。您得到的例外是 Azure 逻辑应用中的通用例外。老实说,我认为异常处理模块在这里不是很可靠,因为当问题没有任何关系时,它通常会转到网关问题。但是,您可以选择通过调用存储过程来克服此限制。

    在甲骨文中

    create or replace procedure pr_trc_table ( ptab in varchar2 )
    is 
    begin 
      execute immediate 'truncate table '||ptab||' ' ;
    exception when others then raise;
    end;
    /
    

    这个由微软开发的Oracle Connector 有很多限制,这是正常的,因为他们试图确保你使用他们自己的 Azure SQL 服务。

    • 在 Oracle 服务器上调用存储过程时,我们有以下限制:
    • 目前不支持 OUT 参数。
    • 返回值不可用,因为 Oracle 存储过程不返回任何结果。
    • 不支持 Oracle 函数,因此它们未在 UI 中列出。
    • 响应大小限制为 8MB。
    • 请求大小限制为 2MB。
    • 支持 Oracle 原生查询,但存在以下限制:
    • 不支持 RefCursor。
    • 不支持 OUT 参数。
    • 只能返回一个结果集。
    • 需要网关版本 3000.63.4(10 月版)或更高版本。
    • Oracle 数据访问客户端支持的最低版本是版本 11

    此外,如果任何 oracle 查询或存储过程执行时间超过 110 秒,则操作将超时。对表的插入和更新不会返回完整的项目,它只返回操作的输入属性。需要主键才能获得GetRows 操作的确定性分页结果。

    【讨论】:

    • 你好@RobertoHernandez,啊......我确实阅读了 MS Oracle 连接器文档和限制,但没有看到任何指定不支持 DDL 的内容。在那种情况下,如果他们有“执行存储过程”,他们为什么还要提供“执行 Oracle 查询”?如果不支持 DDL,您可以使用“执行 Oracle 查询”组件做什么?
    • @Hunkerjr,我知道他们不会这么说。但我是我当前客户在本地使用 Oracle 实施 Azure 的一部分,微软工程师向我们确认了这一点。我可以告诉你,所有原因都归结为一个:从 Oracle 迁移到 Azure SQL 服务。这就是驱动型商业模式。 请记住,连接器不是来自 Oracle,而是来自 Microsoft
    • 我希望能给你 MS 工程师的说明,但这是我客户的专有文件,我不能这样做
    • 我不是在和你争论 ;) 正如你所说,这一切都是有道理的。谢谢你的信息!
    • @Hunkerjr,谢谢你。就我而言,我们最终决定在数据库是 Oracle 时不使用 Azure Logic Apps,因为连接器存在很多问题。祝你好运!
    猜你喜欢
    • 2018-09-30
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 2020-03-20
    • 2021-06-14
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多