Soms is het nodig om Invantive UniversalSQL en Invantive Script statements te gebruiken die ongewijzigd op verschillende OS-platformen moeten kunnen draaien. Het is dan belangrijk om als er gegevens uitgewisseld worden met het operating system om de juiste notatie te gebruiken. In dit topic lees je hoe je de scheidingstekens in padnamen OS-onafhankelijk kunt maken.
Voor gebruik in Invantive UniversalSQL kan gebruik gemaakt worden van de context USERENV
of een query op SystemProperties@DataDictionary
.
Query op SystemProperties
Met een query op SystemProperties@DataDictionary
gaat dat als volgt:
select *
from SYSTEMPROPERTIES@DataDictionary
where name like 'environment-%-separator%'
met als resultaat:
SYS_CONTEXT
functie op USERENV
Gebruik makend van de context ‘USERENV’ kunnen de scheidingstekens opgevraagd worden met:
select 'Path Separator'
, sys_context('USERENV', 'PATH_SEPARATOR') val
union all
select 'Directory Separator'
, sys_context('USERENV', 'DIRECTORY_SEPARATOR')
union all
select 'Directory Separator (Alternative)'
, sys_context('USERENV', 'DIRECTORY_SEPARATOR_ALT')
union all
select 'Volume Separator'
, sys_context('USERENV', 'VOLUME_SEPARATOR')
met als resultaat:
Invantive Script
Invantive Script wordt veel gebruikt in Invantive Data Hub en Invantive Query Tool om gegevens uit te wisselen en daarom zijn er ook mogelijkheden rechtstreeks binnen Invantive Script:
select 'Path Separator: ${system:pathseparator}'
union all
select 'Directory Separator: ${system:directoryseparator}'
union all
select 'Directory Separator (Alternative): ${system:directoryseparatoralt}'
union all
select 'Volume Separator: ${system:volumeseparator}'
geeft:
Een padnaam kan bijvoorbeeld als volgt samengesteld worden:
local define OUT_FOLDER "${system:userdocumentsdirectory}${system:directoryseparator}myfolder"
Beschikbaarheid
De beschreven mogelijkheden zijn beschikbaar vanaf versie 20.1.467 BETA.