1

Oracle 官方文档 1982130.1 描述了当前阻止我们从 mod_plsql 迁移到 ORDS 的缺失特性:

将非 Apex PL/SQL 应用程序从 Oracle HTTP Server 迁移到 Oracle REST Data Services (ORDS) 2.0.9。使用 Oracle REST 数据服务运行 PL/SQL 应用程序时,无论该参数的值如何,都会在 catalina.out 中收到以下错误消息:“ORA-20888: p_application_id must be provided”错误。

其他人如何将非 Apex 应用程序从 mod-plsql 迁移到 ORDS?

4

1 回答 1

4

ORDS 18.3+ 更改了逻辑以使非顶点更容易。这是流程图中的新逻辑,希望它易于理解。

在此处输入图像描述

在 18.3 及以下版本之前,这里是如何完成相同的操作 >

现在的问题是有一个 hacky 解决方法可以让它工作,那就是假装 apex 太旧而无法使用该代码路径。(是的,我会解决这个问题)

在连接池文件中配置的db用户中,创建该视图。该代码检查是否安装了 apex 4+ 以使用它。该视图是如何检查的,因此强制使用旧的东西顶点将使用普通的 'ol DOC 表路径。

create view apex_release as
  select '1.0.0.0' VERSION_NO from dual;

url-mapping.xml

<?xml version="1.0" encoding="UTF-8"?>
<pool-config xmlns="http://xmlns.oracle.com/apex/pool-config">
   <pool base-path="/klrice" name="klrice" />
</pool-config>

conf/klrice.xml

该参数名为 apex.docTable ,默认为“FLOWS_FILES.WWV_FLOW_FILE_OBJECTS$”

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
  <entry key="db.username">klrice</entry>
  <entry key="db.password">klrice</entry>
  <entry key="apex.docTable">klrice.MYDOCTABLE</entry>
</properties>

我的桌子

KLRICE@xe >CREATE TABLE MYDOCTABLE (
  2    NAME               VARCHAR(256)   UNIQUE NOT NULL, 
  3    MIME_TYPE          VARCHAR(128), 
  4    DOC_SIZE           NUMBER, 
  5    DAD_CHARSET        VARCHAR(128), 
  6    LAST_UPDATED       DATE, 
  7    CONTENT_TYPE       VARCHAR(128), 
  8    CONTENT            LONG RAW, 
  9*   BLOB_CONTENT       BLOB );

被调用后:

  1* select BLOB_CONTENT from MYDOCTABLE
KLRICE@xe >/

BLOB_CONTENT                                                                    
--------------------------------------------------------------------------------
89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E00000001735247
于 2018-02-12T15:01:45.480 回答