ORDS 18.3+ la logique a changé pour le rendre plus facile pour les non-apex. Voici la nouvelle logique dans un organigramme, espérons-le, facile à suivre.
Dans les versions antérieures à 18.3 et ci-dessous, voici comment accomplir la même chose>
Le hic, c'est qu'il existe actuellement une solution de contournement pour que cela fonctionne et c'est de prétendre que l'apex est trop vieux pour utiliser ce chemin de code. (ouais ouais je vais arranger ça)
Dans l'utilisateur db qui est configuré dans le fichier du pool de connexions, créez cette vue. Le code vérifie si apex 4+ est installé pour l'utiliser. Cette vue est la façon dont cela est vérifié, donc forcer les ords à ce que l'apex est ancien fera que le chemin de la table DOC en clair sera utilisé.
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
Le paramètre est nommé apex.docTable et cela va par défaut à "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>
Mon tableau
[email protected]🍻🍺 >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 );
Après avoir été appelé :
1* select BLOB_CONTENT from MYDOCTABLE
[email protected]🍻🍺 >/
BLOB_CONTENT
--------------------------------------------------------------------------------
89504E470D0A1A0A0000000D49484452000000C8000000C80806000000AD58AE9E00000001735247