From c58952c4d744750a49f51c284f3069342c67409b Mon Sep 17 00:00:00 2001 From: Ovidiu Sas Date: Tue, 7 Mar 2017 09:42:48 -0500 Subject: [PATCH] db_oracle: fix NULL values binding (cherry picked from commit af18ebc1b580c8d236ed6d65ab9e8e8c528adbd2) --- src/modules/db_oracle/val.c | 34 +++++++++++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/modules/db_oracle/val.c b/src/modules/db_oracle/val.c index f0327342290..3b41bbcb4ad 100644 --- a/src/modules/db_oracle/val.c +++ b/src/modules/db_oracle/val.c @@ -58,7 +58,35 @@ int db_oracle_val2bind(bmap_t* _m, const db_val_t* _v, OCIDate* _o) if (VAL_NULL(_v)) { _m->addr = NULL; _m->size = 0; - _m->type = SQLT_NON; + switch (VAL_TYPE(_v)) { + case DB1_INT: + _m->type = SQLT_INT; + break; + case DB1_BIGINT: + LM_ERR("BIGINT not supported"); + return -1; + case DB1_BITMAP: + _m->type = SQLT_UIN; + break; + case DB1_DOUBLE: + _m->type = SQLT_FLT; + break; + case DB1_STRING: + _m->type = SQLT_STR; + break; + case DB1_STR: + _m->type = SQLT_CHR; + break; + case DB1_DATETIME: + _m->type = SQLT_ODT; + break; + case DB1_BLOB: + _m->type = SQLT_CLOB; + break; + default: + LM_ERR("unknown data type\n"); + return -1; + } return 0; } @@ -130,8 +158,8 @@ int db_oracle_val2bind(bmap_t* _m, const db_val_t* _v, OCIDate* _o) break; default: - LM_ERR("unknown data type\n"); - return -1; + LM_ERR("unknown data type\n"); + return -1; } return 0; }