SqlCom=“insert into Table_A (id, name, call_num) values (:b0, :b1, :b2)”
UploadRec[][] 是需要插入的值的数组,里面的call_num值为“123456789 ”使用proc动态SQL执行:
SQLDA *bind_insert_data;
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR insert_stmt[SQL_LEN];
EXEC SQL END DECLARE SECTION; bind_insert_data = sqlald(200, 60, 10)) ;
insert_stmt.len = sprintf(insert_stmt.arr, SqlCom);
EXEC SQL PREPARE S1 FROM :insert_stmt;
EXEC SQL DECLARE data_cursor CURSOR FOR S1;
EXEC SQL DESCRIBE BIND VARIABLES FOR S1 INTO bind_insert_data;
bind_insert_data->N = bind_insert_data->F;
for(i=0; i<bind_insert_data->F; i++)
{
bind_insert_data->L = strlen(UploadRec);
bind_insert_data->V = (char*)malloc(bind_insert_data->L+1);
bind_insert_data->I = (short*)malloc(sizeof(short*));
strcpy(bind_insert_data->V, UploadRec);
*(bind_insert_data->I) = 0;
bind_insert_data->T = 1;
}
EXEC SQL OPEN data_cursor USING DESCRIPTOR bind_insert_data;
通过这种方式执行以后,数据都被插入了表中,但是call_num的值却没有了后面的空格。(在数据库表中call_num字段定义的类型为varchar2)请问这是什么原因啊? 如何解决 谢谢。。急问
UploadRec[][] 是需要插入的值的数组,里面的call_num值为“123456789 ”使用proc动态SQL执行:
SQLDA *bind_insert_data;
EXEC SQL BEGIN DECLARE SECTION;
VARCHAR insert_stmt[SQL_LEN];
EXEC SQL END DECLARE SECTION; bind_insert_data = sqlald(200, 60, 10)) ;
insert_stmt.len = sprintf(insert_stmt.arr, SqlCom);
EXEC SQL PREPARE S1 FROM :insert_stmt;
EXEC SQL DECLARE data_cursor CURSOR FOR S1;
EXEC SQL DESCRIBE BIND VARIABLES FOR S1 INTO bind_insert_data;
bind_insert_data->N = bind_insert_data->F;
for(i=0; i<bind_insert_data->F; i++)
{
bind_insert_data->L = strlen(UploadRec);
bind_insert_data->V = (char*)malloc(bind_insert_data->L+1);
bind_insert_data->I = (short*)malloc(sizeof(short*));
strcpy(bind_insert_data->V, UploadRec);
*(bind_insert_data->I) = 0;
bind_insert_data->T = 1;
}
EXEC SQL OPEN data_cursor USING DESCRIPTOR bind_insert_data;
通过这种方式执行以后,数据都被插入了表中,但是call_num的值却没有了后面的空格。(在数据库表中call_num字段定义的类型为varchar2)请问这是什么原因啊? 如何解决 谢谢。。急问
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货