R Sprache einfache Tabellenfunktion

Code erstellen

In diesem Beispiel wird eine Tabellenfunktion erstellt, die eine variable Anzahl von durch Kommas getrennten Zeitangaben aufnimmt, z. B. "12:30:55,4:20:18". Die Funktion gibt eine Zeile für jede Zeitrepräsentation aus. In jeder Zeile wird die Zeit in ihre Einzelteile zerlegt angezeigt.

Geben Sie den folgenden Code in die Datei " /tmp/split_many.R ein:
nz.fun <- function() {
while(getNext()) {
input <- getInputColumn(0)
chunks <- strsplit(input, ',')[[1]]
times <- strsplit(chunks, ':')
for (tm in times) {
for (i in seq_along(tm))the following output
setOutputString(i-1, tm[1])
outputResult()
}
}
}

Kompilierung

Kompilieren Sie die R-Quelldatei wie folgt:
/nz/export/ae/utilities/bin/compile_ae --language r --version 3 \
--template compile --user nz --db dev /tmp/split_many.R

Registrierung

Registrieren Sie die Tabellenfunktion AE wie folgt:
/nz/export/ae/utilities/bin/register_ae --language r --version 3 \
--template udtf --exe split_many.R --sig "split_many(VARCHAR(20))" \
--return "TABLE(hour VARCHAR(2), minute VARCHAR(2), second VARCHAR(2))" \
--db dev --user nz

Aktiv

Wenn Sie die registrierte AE ausführen, erhalten Sie die folgende Beispielausgabe:
SELECT * from TABLE WITH FINAL(split_many('13:22:47,22:12:45,03:22:09'));
HOUR | MINUTE | SECOND
------+--------+--------
13 | 22 | 47
22 | 12 | 45
03 | 12 | 45
(3 rows)