proc 开发数据库 批量插入数据,插入时 最后一条记录为空
插入数据的结构为
字段A 字段B
测试1 test1
测试2 test2
测试3 test3
测试4 test4批量插入数据 批量插入数量是4
插入后
字段A 字段B
测试1 test1
测试2 test2
测试3 test3
test4
第四行第一个字段为空? 代码也没什么问题啊? 可奇怪了 请教超级牛人!int set_bind_variables(ST_table_info st_table_info,SQLDA *bind_dp)
{
unsigned int i=0,j=0;
bind_dp->N = MAX_ITEMS; /* Initialize count of array elements. */
EXEC SQL DESCRIBE BIND VARIABLES FOR S INTO bind_dp;
if (sqlca.sqlcode<0)
{
printf ("DESCRIBE Error %.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK;
return FAIL;
}
/* If F is negative, there were more bind variables
than originally allocated by sqlald(). */
if (bind_dp->F < 0)
{
printlog ("recordtodb","\nToo many bind variables (%d), maximum is %d\n.",-bind_dp->F, MAX_ITEMS);
return FAIL;
}
/* Set the maximum number of array elements in the
descriptor to the number found. */
bind_dp->N = bind_dp->F;
printf("bind_dp->F value is:%d", bind_dp->F);
//printfd("st_table_info.vst_tab_column.size():%d\n",st_table_info.vst_tab_column.size());
for (i = 0; i < bind_dp->F; i++)
{
for (j=0;j<st_table_info.vst_bind_list.size();j++)
{
if (!strcmp(bind_dp->S[i],st_table_info.vst_bind_list[j].variable_name.c_str()))
{
bind_dp->L[i] = st_table_info.vst_bind_list[j].max_length;
printf("pcol[st_table_info.vst_bind_list[j].bind_sequence] value is:%s\n", pcol[st_table_info.vst_bind_list[j].bind_sequence]);
bind_dp->V[i] = pcol[st_table_info.vst_bind_list[j].bind_sequence];
printf("bind_dp valus:%s\n", (char * )bind_dp->V[i]);
*bind_dp->I[i] = 0;
bind_dp->T[i] = 1;
break;
}
}
}
return SUCCESS;
}
插入数据的结构为
字段A 字段B
测试1 test1
测试2 test2
测试3 test3
测试4 test4批量插入数据 批量插入数量是4
插入后
字段A 字段B
测试1 test1
测试2 test2
测试3 test3
test4
第四行第一个字段为空? 代码也没什么问题啊? 可奇怪了 请教超级牛人!int set_bind_variables(ST_table_info st_table_info,SQLDA *bind_dp)
{
unsigned int i=0,j=0;
bind_dp->N = MAX_ITEMS; /* Initialize count of array elements. */
EXEC SQL DESCRIBE BIND VARIABLES FOR S INTO bind_dp;
if (sqlca.sqlcode<0)
{
printf ("DESCRIBE Error %.70s\n",sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK;
return FAIL;
}
/* If F is negative, there were more bind variables
than originally allocated by sqlald(). */
if (bind_dp->F < 0)
{
printlog ("recordtodb","\nToo many bind variables (%d), maximum is %d\n.",-bind_dp->F, MAX_ITEMS);
return FAIL;
}
/* Set the maximum number of array elements in the
descriptor to the number found. */
bind_dp->N = bind_dp->F;
printf("bind_dp->F value is:%d", bind_dp->F);
//printfd("st_table_info.vst_tab_column.size():%d\n",st_table_info.vst_tab_column.size());
for (i = 0; i < bind_dp->F; i++)
{
for (j=0;j<st_table_info.vst_bind_list.size();j++)
{
if (!strcmp(bind_dp->S[i],st_table_info.vst_bind_list[j].variable_name.c_str()))
{
bind_dp->L[i] = st_table_info.vst_bind_list[j].max_length;
printf("pcol[st_table_info.vst_bind_list[j].bind_sequence] value is:%s\n", pcol[st_table_info.vst_bind_list[j].bind_sequence]);
bind_dp->V[i] = pcol[st_table_info.vst_bind_list[j].bind_sequence];
printf("bind_dp valus:%s\n", (char * )bind_dp->V[i]);
*bind_dp->I[i] = 0;
bind_dp->T[i] = 1;
break;
}
}
}
return SUCCESS;
}
解决方案 »
- 在oracle10g中怎么样写个存储过程来实现用户名和密码的验证,急!
- 导入视图时,报错, ORA-00933:SQL命令未正确结束
- 如何使用PL/SQL解析XML文档
- 关于clob,这句sql语句应该怎么写?
- 求一sql语句,明天结贴
- oracle 触发器。。。。
- Oracle10g 如何查看自己产生的 procedure 和 function 代码呢?
- 向上取数的SQL,请帮忙!
- 一个用户的default tablespace 和 temporary tablespace 有什么区别啊
- 求教 如何将一个字段查询出的多个结果拼接到一起
- oracle Rman 异机数据备份和恢复问题???
- 请教ORACLE字符串相加触发器的问题
参考下 以前从没有用过proc 里面很多细节需要学习啊!