Oracle
 sql >> Database >  >> RDS >> Oracle

Converti LONG in varchar in Oracle

Ricerca su Google di oracle convert long to varchar dà parecchi risultati, molti dei quali suggeriscono l'uso di funzioni, tabelle (temporanee) ecc. Tutti questi sono fuori questione nel mio caso specifico poiché non mi è permesso creare alcun oggetto in Oracle database/server.

Alla fine ho trovato un campione che sono stato in grado di modificare per il mio caso d'uso. L'esempio proviene da questo pagina , da qualcuno che si fa chiamare Sayan Malakshinov. Dopo aver modificato il suo campione, ho finito con questo:

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)
    )
')

Questo omette alcune colonne da ALL_TRIGGERS ma ottengo l'intero corpo del trigger (poiché nessuno dei trigger è più lungo di 4000 caratteri).