1

我正在使用 Oracle 数据库 12.2 和 ORDS 18.3。知道 ORDS 仅用于其 PL/SQL 网关部分,而不是 REST 数据服务部分,是否可以使用原始正文(不使用application/x-www-form-urlencodedor参数)向 ORDS 发出 HTTP POST 请求。multipart/form-data

在这种情况下,独立模式(使用 Jetty)的 ORDS 是 HTTP 服务器。发出请求的 HTTP 客户端是一些外部程序(Postman、Java、...)。

这个想法是发送 JSON 数据,但它可以是二进制数据,如图像或其他东西。

看起来 PL/SQL 网关“仅”能够使用参数调用过程(或者根本没有参数,当然也没有主体)。我可以使用多部分形式的虚拟参数发出请求,并以某种方式模拟我想要的东西(用VARCHAR2,not CLOBnor测试BLOB),但我想知道是否存在这种可能性。

4

2 回答 2

2

要回答我自己的问题,这是不可能的。我们必须使用参数和 MIME 类型application/x-www-form-urlencoded(或multipart/form-data)。

于 2019-01-04T10:53:08.963 回答
0

您可以使用几个特定于 ORDS 的绑定变量(隐式参数)

  • :body将返回一个 BLOB。这可以用于任何东西,包括图像
  • :body_text将返回一个 CLOB。这对于 JSON、XML 或您指定的其他 MIME 类型(application/x-www-form-urlencodedmultipart/form-data)等文本主体很有用

注意:您只能在 PL/SQL 块中取消引用or:body参数:body_text(如本文档所示),因此您可能需要在使用之前将其分配给局部变量。

于 2020-06-01T15:30:24.283 回答