Oracle
 sql >> Base de données >  >> RDS >> Oracle

Téléchargements de fichiers dans une application PL/SQL non Apex migrée vers ORDS

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