AIX5.3 UDB ESE 8.2.5
I am trying the following C code ..I was able to compile the routine with bldrtn command successfully..but when I call the stored proc, its running successfully without doing any reorg..can some tell me where its going wrong in the C code below?
#include <sql.h>
#include <sqludf.h>
#include <db2ApiDf.h>
int SQL_API_FN reorg_proc(
SQLUDF_VARCHAR *tableName)
{
SQL_API_RC rc = SQL_RC_OK;
db2ReorgStruct data;
struct sqlca sqlca;
/* initialize data structures */
data.reorgType = DB2REORG_OBJ_INDEXESALL;
data.reorgFlags = DB2REORG_OPTION_NONE;
data.nodeListFlag = DB2_ALL_NODES;
data.numNodes = 0;
data.pNodeList = 0;
data.reorgObject.indexesAllStruct.pTableName = tableName;
memset(&sqlca, 0x00, sizeof sqlca);
rc = db2Reorg(db2Version820, &data, &sqlca);
if (rc != SQL_RC_OK || SQLCODE != SQL_RC_OK) {
memcpy(SQLUDF_STATE, "38RS1", SQLUDF_SQLSTATE_LEN);
sprintf(SQLUDF_MSGTX, "Error %d returned by db2Reorg.",
(int)(rc == SQL_RC_OK ? SQLCODE : rc));
goto cleanup;
}
cleanup:
return SQLZ_DISCONNECT_PROC;
}
CREATE PROCEDURE reorgt(IN tableName VARCHAR(256))
SPECIFIC reorgt
DYNAMIC RESULT SETS 0
MODIFIES SQL DATA
NOT DETERMINISTIC
CALLED ON NULL INPUT
LANGUAGE C
EXTERNAL NAME 'db2_api!reorg_proc'
FENCED THREADSAFE
NO EXTERNAL ACTION
PARAMETER STYLE SQL@
$ db2 "call reorgt('xxxx.TABNAME')"
Return Status = 0
I am following the doc in this link
http://www-128.ibm.com/developerwork...lze/index.html