Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Konvertieren Sie LONG in Oracle in varchar

Durchsuchen von Google nach oracle convert long to varchar liefert einige Ergebnisse, von denen viele die Verwendung von Funktionen, (temporären) Tabellen usw. nahelegen. All dies kommt in meinem speziellen Fall nicht in Frage, da ich keine Objekte im Oracle Datenbank/Server.

Ich habe endlich ein Beispiel gefunden, das ich für meinen Anwendungsfall modifizieren konnte. Das Beispiel stammt von this Seite , von jemandem, der sich Sayan Malakshinov nennt. Nachdem ich sein Beispiel modifiziert hatte, kam ich zu folgendem Ergebnis:

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

Dadurch werden einige Spalten von ALL_TRIGGERS ausgelassen aber ich bekomme den gesamten Triggerkörper (da keiner der Trigger länger als 4000 Zeichen ist).