2016-04-21 6 views
0

Ich versuche, eine Aggregat UDF-Funktion in Teradata zu erstellen.Array-Definition in Teradata Aggregat UDF

Als Teil davon versuche ich ein Array im Zwischenspeicher zu dekalieren.

Es wirft weiter unten den Fehler, wenn ich versuche, es mit Teradata zu verknüpfen.

Executed as Single statement. Failed [7504 : HY000] in UDF/XSP/UDM DBC.IRR: SQLSTATE U0001: 
Elapsed time = 00:00:01.628 

STATEMENT 1: Select Statement failed. 

Hier ist mein Code, der das Array enthält.

Gibt es etwas falsch mit der Syntax?

#include <sqltypes_td.h> 
#include <string.h> 
#include <math.h> 
typedef struct agr_storage { 
     FLOAT count; 
     FLOAT val1,val2,val3,val4; 
    FLOAT res[100]; // This is my array 
} AGR_Storage; 

Antwort

-1

Teradata begrenzt jede Zwischenblockgröße auf 64 Bytes und in dem obigen Code, versuchen wir, ein Array der Größe 800 Bytes zu erklären.

Dies ist der Grund für einen Fehler.

+0

Die Größe eines * Zwischenspeicherblocks * ist auf 64000 Byte und nicht 64 Byte beschränkt: http://www.info.teradata.com/htmlpubs/DB_TTU_15_10/index.html#page/SQL_Reference/B035_1147_151K/C_UDFs. 045.073.html – dnoeth