为什么我的 Oracle Rest-Enabled SQL 引用没有被识别?
Why isn't my Oracle Rest-Enabled SQL Reference being recognised?
这几天一直在和这个吵架。希望我太厚了,某处少了一个分号。
我一直在尝试在我的本地盒子上设置对启用 REST 的 SQL (RESS) 的引用,但 Apex 拒绝承认它。
我正在使用 https://docs.oracle.com/database/apex-18.1/HTMDB/rest-enabled-sql-creating.htm#HTMDB-GUID-0906921E-AF79-49D4-B909-1C090F805D9D 上的文章,它看起来很简单。
在你提问之前:
- 是的,我已经启用了 REST 架构
- 是的,我在 defaults.xml 文件中启用了 RESS
- 是的,我已经使用像
curl -i -X POST --user testuser1:testuser1 --data-binary "select sysdate from dual" -H "Content-Type: application/sql" -k http://localhost:8080/ords/hr2/_/sql
这样的 curl 命令测试了 RESS 远离 APEX,并且它有效。
然后在 APEX->Shared Components->Data Sources->REST Enabled SQL 中,我设置了这个引用:
它使用这些凭据:
但是,当我最初创建引用并对其进行测试时,我收到以下消息:
我究竟做错了什么?
使用 Oracle APEX 21.2.0 和 ORDS 版本 21.4.1.r0250904
屏幕截图看起来不错。我现在将检查 数据库 是否可以使用 APEX_WEB_SERVICE 到达 ORDS 端点,如下所示(您可以使用 SQL*Plus 或 SQL Workshop为此):
declare
l_result clob;
begin
apex_web_service.set_request_headers(
p_name_01 => 'Content-Type',
p_value_01 => 'application/sql' );
l_result := apex_web_service.make_rest_request(
p_url => 'http://localhost:8080/ords/hr2/_/sql',
p_http_method => 'POST',
p_username => 'TESTUSER1',
p_password => 'testuser1',
p_body => 'select sysdate from dual' );
dbms_output.put_line( l_result );
end;
可能的错误是...
- 未为 APEX_XXXXXX 用户设置 PL/SQL 网络 ACL
- 数据库定义了一个无效的代理服务器
这几天一直在和这个吵架。希望我太厚了,某处少了一个分号。
我一直在尝试在我的本地盒子上设置对启用 REST 的 SQL (RESS) 的引用,但 Apex 拒绝承认它。
我正在使用 https://docs.oracle.com/database/apex-18.1/HTMDB/rest-enabled-sql-creating.htm#HTMDB-GUID-0906921E-AF79-49D4-B909-1C090F805D9D 上的文章,它看起来很简单。
在你提问之前:
- 是的,我已经启用了 REST 架构
- 是的,我在 defaults.xml 文件中启用了 RESS
- 是的,我已经使用像
curl -i -X POST --user testuser1:testuser1 --data-binary "select sysdate from dual" -H "Content-Type: application/sql" -k http://localhost:8080/ords/hr2/_/sql
这样的 curl 命令测试了 RESS 远离 APEX,并且它有效。
然后在 APEX->Shared Components->Data Sources->REST Enabled SQL 中,我设置了这个引用:
它使用这些凭据:
但是,当我最初创建引用并对其进行测试时,我收到以下消息:
我究竟做错了什么? 使用 Oracle APEX 21.2.0 和 ORDS 版本 21.4.1.r0250904
屏幕截图看起来不错。我现在将检查 数据库 是否可以使用 APEX_WEB_SERVICE 到达 ORDS 端点,如下所示(您可以使用 SQL*Plus 或 SQL Workshop为此):
declare
l_result clob;
begin
apex_web_service.set_request_headers(
p_name_01 => 'Content-Type',
p_value_01 => 'application/sql' );
l_result := apex_web_service.make_rest_request(
p_url => 'http://localhost:8080/ords/hr2/_/sql',
p_http_method => 'POST',
p_username => 'TESTUSER1',
p_password => 'testuser1',
p_body => 'select sysdate from dual' );
dbms_output.put_line( l_result );
end;
可能的错误是...
- 未为 APEX_XXXXXX 用户设置 PL/SQL 网络 ACL
- 数据库定义了一个无效的代理服务器