Ошибка Bash при компиляции Netezza UDF

У меня есть следующий код cpp, который определяет UDF в Netezza, который берет дату некоторого формата и изменяет ее на стандартный формат YYYYMMDD:

//dateconvert.cpp

#include <stdarg.h>
#include <string.h>
#include "udxinc.h"#include "udxhelpers.h"
using namespace nz::udx_ver2;

class Dateconvert: public Udf
{
public:

Dateconvert(UdxInit *pInit) : Udf(pInit){}
~Dateconvert(){}

static Udf* instantiate();
virtual ReturnValue evaluate()
{
StringReturn* ret = stringReturnInfo();
StringArg *str;
str = stringArg(0);
int lengths = str->length;
char *datas = str->data;

string data = datas;
data = "'" + data + "'";
string cmd="date -d " + data +  " +%Y%m%d 2>/dev/null";

FILE *ls = popen(cmd.c_str(), "r");
char retval[100];
fgets(retval, sizeof(retval), ls);

if(!isdigit(retval[0]))
{
strcpy(retval,"99991231");
}
pclose(ls);

ret->size = sizeof(retval);
memcpy(ret->data, retval, sizeof(retval));

NZ_UDX_RETURN_STRING(ret);
}
};Udf* Dateconvert::instantiate(UdxInit *pInit)
{
return new Dateconvert(pInit);
}

Это команда, которую я использую для компиляции / регистрации UDF:

nzudxcompile /export/home/nz/dateconvert.cpp -o dateconvert.o --sig
"Dateconvert(VARCHAR(200))" --version 2 --return VARCHAR(200)
--class Dateconvert --user user1 --pw password1  --db db1

Когда я иду на компиляцию, я получаю ошибку:

-bash: syntax error near unexpected token `('

Как bash может генерировать ошибку компиляции при компиляции программы на c ++? Ошибка сохраняется даже при отключении самого файла cpp, поэтому я предполагаю, что проблема связана с командой компиляции.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]