назначение переменной oracle PL SQL с URL - PullRequest
0 голосов
/ 28 февраля 2020

У меня есть задача, в которой мне нужно создать вызов API отдыха в хранимой процедуре в Oracle.

В качестве примера я рассмотрел следующую документацию.

https://technology.amis.nl/2015/05/11/invoke-a-rest-service-from-plsql-make-an-http-post-request-using-utl_http-in-oracle-database-11g-xe/

в моем PL SQL я пытаюсь установить для моей переменной url следующую строку:

https://localhost/access_token?client_id=1234&client_secret=1234&grant_type=client_credentials

с использованием следующего

v_url := 'https://localhost/access_token?client_id=1234'||chr(38) ||'client_secret=1234'||chr(38) ||'grant_type=client_credentials';

Однако переменная не устанавливается, так как возвращается ноль. Переменная может быть установлена ​​в точку перед '&'

create or replace procedure mule_test( p_clientid in varchar2, 
p_clientsecret in varchar2) 

AS

  req utl_http.req;
  res utl_http.resp;
  v_url VARCHAR2(255);  v_name VARCHAR2(255);
  v_buffer varchar2(4000); 
  v_content varchar2(4000);


 begin

    v_url := 'https://localhost/access_token?client_id=1234'||chr(38) 
    ||'client_secret=1234'||chr(38) ||'grant_type=client_credentials';

1 Ответ

1 голос
/ 28 февраля 2020

Работает нормально у меня:

SQL> set serveroutput on
SQL> declare
  2    v_url varchar2(200);
  3  begin
  4    v_url := 'https://localhost/access_token?client_id=1234'||chr(38) ||'client_secret=1234'||chr(38) ||'grant_type=client_credentials';
  5    dbms_output.put_line(v_url);
  6  end;
  7  /
https://localhost/access_token?client_id=1234&client_secret=1234&grant_type=client_credentials

PL/SQL procedure successfully completed.

SQL>
...