Ett vanligt behov är att ha en temporär tabell för uppslagsändamål. Ofta motiverar det tillfälliga behovet och datamängden inte lagring i en relationsdatabas. För detta ändamål erbjuder Invantive SQL temporära in-memory-tabeller som enkelt kan fyllas med data med hjälp av exempelvis källorna csvtable eller xmltable.
Följande kod skapar en tabell eu_countries med alla EU-medlemmar (exklusive Storbritannien):
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-länder har följande innehåll:
Denna tabell kan till exempel användas för att korrigera momskoder i Invantive Estate, såsom:
--
-- Kund utanför NL, men inom EU: momskod 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
Eftersom antalet element i IN-satsen är litet och in-memory-tabeller anses vara mycket snabba, kommer IN automatiskt att skrivas om till en explicit lista med värden. Detta möjliggör användning av serversidig filtrering och användning av index på målplattformen.
Ett liknande exempel för att uppdatera kontokoder i Exact Online med csvtable finns tillgängligt på Massaal bijwerken relatiecodes in Exact Online naar specifieke nieuwe relatiecodes.
Mer information om användningen och prestandafördelarna med serversidig filtrering finns tillgänglig på How to filter data from OData query on Azure Data Factory? - 3 van forums.
