If you specify CPP in the Language Clause, then you must declare the called C++ procedure as extern “C” to ensure that the procedure name is not converted to an overloaded C++ name, for example.
extern “C” void my_cpp(long int *input_int, long int *result, char sqlstate[6]) {
For more information, see Teradata Vantage™ - SQL External Routine Programming , B035-1147 .