sql >> Databáze >  >> RDS >> Oracle

Převeďte LONG na varchar v Oracle

Vyhledejte na Googlu výraz oracle convert long to varchar dává poměrně dost výsledků, z nichž mnohé navrhuje použití funkcí, (dočasných) tabulek atd. Všechny tyto v mém konkrétním případě nepřipadají v úvahu, protože v Oracle databáze/server.

Konečně jsem našel vzorek, který jsem mohl upravit pro svůj případ použití. Ukázka pochází z toto stránka , tím, že si někdo říká Sayan Malakshinov. Po úpravě jeho vzorku jsem skončil s tímto:

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

Toto vynechá některé sloupce z ALL_TRIGGERS ale dostávám celé tělo spouště (protože žádný ze spouštěčů není delší než 4000 znaků).



  1. Funkce lower() pro mezinárodní znaky v postgresql

  2. Převést WM_CONCAT na Listagg

  3. Návrh databáze Mysql pro více adres zákazníka a výchozí adresu

  4. Co je dostatečná sanitace pro URL