Uitbreiding met dollarteken met behulp van een variabele

Als u een variabele gebruikt voor het vervangen van tekst in het script of in een uitdrukking, wordt de volgende syntaxis gebruikt:

$(variablename)      

$(variablename) wordt uitgebreid tot de waarde in de variabele. Als variablename niet bestaat, is de uitbreiding de lege tekenreeks.

Voor uitbreiding met numerieke variabelen wordt de volgende syntaxis gebruikt:

$(#variablename)      

Er wordt altijd een geldige notatie met decimale punt gebruikt bij de numerieke waarde van de variabele, mogelijk met exponentiële notatie (voor zeer grote/kleine getallen). Als variablename niet bestaat of geen numerieke waarde bevat, wordt de naam uitgebreid tot 0.

Example:  

SET DecimalSep=',';

LET X = 7/2;

De uitbreiding met dollarteken $(X) wordt uitgebreid tot 3,5, terwijl $(#X) wordt uitgebreid tot 3.5.

Example:  

Set Mypath=C:\MyDocs\Files\;

...

LOAD * from $(MyPath)abc.csv;

Gegevens worden geladen vanuit C:\MyDocs\Files\abc.csv.

Example:  

Set CurrentYear=1992;

...

SQL SELECT * FROM table1 WHERE Year=$(CurrentYear);

Rijen met Year=1992 worden geselecteerd.

Example:  

Set vConcatenate = ; For each vFile in FileList('.\*.txt') Data: $(vConcatenate) LOAD * FROM [$(vFile)]; Set vConcatenate = Concatenate ; Next vFile

In dit voorbeeld worden alle .txt bestanden in de directory geladen met het prefix Concatenate. Dit kan nodig zijn als de velden enigszins verschillen. In dat geval werkt automatische samenvoeging niet. De variabele vConcatenate wordt eerst ingesteld op een lege tekenreeks, aangezien het prefix Concatenate niet kan worden gebruikt bij de eerste load-opdracht. Als de directory drie bestanden bevat met de namen file1.txt, file2.txt en file3.txt, wordt de LOAD-opdracht tijdens de drie herhalingen uitgebreid tot:

LOAD * FROM[.\file1.txt];

Concatenate LOAD * FROM[.\file2.txt];

Concatenate LOAD * FROM[.\file3.txt];

Variabelen uitbreiden in alternatieve states

U kunt specificeren welke state u wilt gebruiken bij het uitbreiden van een variabele. Veranderingen in een specifieke status zijn niet van invloed op variabelewaarden die in een andere state zijn uitgebreid. Als u geen state specificeert, wordt de variabele uitgebreid in de standaardstate.

Example:  

Als u een state hebt met de naam MyState en een variabele met de naam vMyVar:

  • wordt met $(vMyVar) de variabele uitgebreid in de standaardstate.
  • En met $({MyState} vMyVar) wordt de variabele uitgebreid in de MyState-state.