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

Convertir LONG en varchar dans Oracle

Recherche via Google pour oracle convert long to varchar donne pas mal de résultats, dont beaucoup suggèrent d'utiliser des fonctions, des tables (temporaires), etc. Tout cela est hors de question dans mon cas spécifique car je ne suis pas autorisé à créer des objets dans le Oracle base de données/serveur.

J'ai finalement trouvé un échantillon que j'ai pu modifier pour mon cas d'utilisation. L'exemple provient de ce page , par quelqu'un se faisant appeler Sayan Malakshinov. Après avoir modifié son échantillon, je me suis retrouvé avec ceci :

select * from openquery(SERVERLINKNAME, '
    select *
    from
    xmltable( ''/ROWSET/ROW'' passing dbms_xmlgen.getXMLType(''
        select
            trigger_name,
            TRIGGER_BODY
        from ALL_TRIGGERS
        where TRIGGER_BODY is not null
            and owner = ''''OURUSERNAME''''
    '')
    columns
        trigger_name varchar2(80),
        TRIGGER_BODY varchar2(4000)
    )
')

Cela omet certaines colonnes de ALL_TRIGGERS mais j'obtiens tout le corps du déclencheur (puisqu'aucun des déclencheurs ne dépasse 4000 caractères).