Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Converter LONG para varchar no Oracle


Pesquisando no Google por oracle convert long to varchar fornece alguns resultados, muitos dos quais sugerem o uso de funções, tabelas (temporárias), etc. Tudo isso está fora de questão no meu caso específico, pois não tenho permissão para criar nenhum objeto no Oracle servidor de banco de dados.

Finalmente encontrei uma amostra que pude modificar para o meu caso de uso. A amostra é de este página , por alguém que se chama Sayan Malakshinov. Depois de modificar sua amostra, acabei com isso:
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)
    )
')

Isso omite algumas colunas de ALL_TRIGGERS mas recebo todo o corpo do gatilho (já que nenhum dos gatilhos tem mais de 4000 caracteres).