Hi,
because I found this statement, I tried also primitive SQL types.
"That is to say that DDL or DML statements are not allowed within the function body."
Both variants are working fine, if I do a select in the SQL-Console.
But in the calc view I get the same error :
"Could not derive table type for variable "_SYS_SS2_RETURN_VAR_"
Variant A DDL
FUNCTION "TBASE_PUBLIC"."development.functions::get_labor_by_patid" (patientID integer,
wert VARCHAR(20) DEFAULT '*',
datum VARCHAR(10) DEFAULT '*' )
RETURNS "development.projects.tbase.data::TBASE_TT.Procedures.ttLabor"
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN
type ttLabor {
LaborID : Integer;
LaborwertID : Integer;
PatientID : Integer;
Datum : UTCTimestamp;
Abnahmezeit : UTCTimestamp;
Auftragsnummer : hana.VARCHAR(15);
Fallnummer : hana.VARCHAR(15);
Counter : Integer;
Bearbeitungszeit : UTCTimestamp;
Bezeichnung : hana.VARCHAR(50);
Wert : hana.VARCHAR(25);
Einheit : hana.VARCHAR(15);
Hinweis : hana.VARCHAR(2);
Intern : hana.TINYINT;
Kommentar : hana.VARCHAR(4000);
};
Variant B: Primitive SQL
FUNCTION "TBASE_PUBLIC"."development.functions::get_labor_by_patid2"
(patientID integer,
wert VARCHAR(20) DEFAULT '*',
datum VARCHAR(10) DEFAULT '*' )
RETURNS table (
"LaborID" Integer,
"LaborwertID" Integer,
"PatientID" Integer,
"Datum" TIMESTAMP ,
"Abnahmezeit" TIMESTAMP ,
"Auftragsnummer" VARCHAR(15),
"Fallnummer" VARCHAR(15),
"Counter" Integer,
"Bearbeitungszeit" TIMESTAMP ,
"Bezeichnung" VARCHAR(50),
"Wert" VARCHAR(25),
"Einheit" VARCHAR(15),
"Hinweis" VARCHAR(2),
"Intern" TINYINT,
"Kommentar" VARCHAR(4000)
)
Would be really nice, if someone could help me.