Lag en oppslagstabell over EU-land

Et vanlig behov er å ha en midlertidig tabell til oppslagsformål. Ofte er det midlertidige behovet og datamengden ikke nok til å rettferdiggjøre lagring i en relasjonsdatabase. Til dette formålet tilbyr Invantive SQL midlertidige in-memory-tabeller som enkelt kan fylles med data ved hjelp av for eksempel csvtable- eller xmltable-kilden.

Følgende kode oppretter en tabell eu_countries med alle EU-medlemmer (uten Storbritannia):

create or replace table eu_countries@inmemorystorage
as
select *
from   csvtable
       ( passing 'SE,IM,CZ,ES,SK,SI,BE,BG,CY,DK,DE,EE,FI,FR,GR,HU,IE,IT,MC,HR,LT,LV,LU,MT,AT,PL,PT,RO'
         row delimiter ','
         column delimiter '#'
         columns country_code varchar2 position next
       )

In-memory-tabellen med EU-land har følgende innhold:

Denne tabellen kan for eksempel brukes til å korrigere MVA-koder i Invantive Estate, slik som:

--
-- Kunde utenfor NL, men innenfor EU: MVA-kode 7
--
update bubs_leveranciers_v@ora
set    bce_code = '7'
where  lvr_land in ( select country_code from eu_countries@inmemorystorage )
and    lvr_land != 'NL'
and    bce_code is null

Siden antallet elementer i IN-klausulen er lite og in-memory-tabeller regnes som svært raske, vil IN automatisk bli omskrevet til en eksplisitt liste med verdier. Dette muliggjør bruk av filtrering på serversiden og bruk av indekser på målplattformen.

Et lignende eksempel for oppdatering av kontokoder i Exact Online ved hjelp av csvtable er tilgjengelig på Massaal bijwerken relatiecodes in Exact Online naar specifieke nieuwe relatiecodes.

Mer informasjon om bruken og ytelsesfordelene ved filtrering på serversiden er tilgjengelig på How to filter data from OData query on Azure Data Factory? - 3 van forums.