我用C语言开发Oracle数据库程序.现在遇到,记录输出的问题.请个位帮忙指点一二,程序(linux下)是这样的:
char *rname;
char *rurl;
rname=(char*)malloc(100);
rurl=(char*)malloc(100);
memset(rname,0,sizeof(rname));
memset(rurl,0,sizeof(rurl));
if ((a=OCIDefineByPos ( select_p,
&defnp[0],
errhp,
1,
&rname,
sizeof(rname),
SQLT_STR,
(dvoid *) 0,
(dvoid *) 0,
(dvoid *) 0,
OCI_DEFAULT)) ||
(b=OCIDefineByPos ( select_p,
&defnp[1],
errhp,
2,
&rurl,
sizeof(rurl),
SQLT_STR,
(dvoid *) 0,
(dvoid *) 0,
(dvoid *) 0,
OCI_DEFAULT)))
{
printf ("Failed to define\n");
return (OCI_ERROR);
}
FILE *fp;
fp=fopen("test.txt","w");
//循环取记录 OCIStmtFetch (select_p, errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)))
while((swResult=OCIStmtFetch(select_p,errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)) != OCI_NO_DATA)
{
fprintf(fp,"%s\n%s\n",rname,rurl);
}
if(fp)
fclose(fp);但输出结果是乱码.我不知该怎么将rname,rurl打印出来.请大家帮忙指点,谢谢!
char *rname;
char *rurl;
rname=(char*)malloc(100);
rurl=(char*)malloc(100);
memset(rname,0,sizeof(rname));
memset(rurl,0,sizeof(rurl));
if ((a=OCIDefineByPos ( select_p,
&defnp[0],
errhp,
1,
&rname,
sizeof(rname),
SQLT_STR,
(dvoid *) 0,
(dvoid *) 0,
(dvoid *) 0,
OCI_DEFAULT)) ||
(b=OCIDefineByPos ( select_p,
&defnp[1],
errhp,
2,
&rurl,
sizeof(rurl),
SQLT_STR,
(dvoid *) 0,
(dvoid *) 0,
(dvoid *) 0,
OCI_DEFAULT)))
{
printf ("Failed to define\n");
return (OCI_ERROR);
}
FILE *fp;
fp=fopen("test.txt","w");
//循环取记录 OCIStmtFetch (select_p, errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)))
while((swResult=OCIStmtFetch(select_p,errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)) != OCI_NO_DATA)
{
fprintf(fp,"%s\n%s\n",rname,rurl);
}
if(fp)
fclose(fp);但输出结果是乱码.我不知该怎么将rname,rurl打印出来.请大家帮忙指点,谢谢!
解决方案 »
- linux中oracle手工创建数据库出错,ORA-00604: error occurred at recursive SQL level !alert如下!
- 初学oracle,问1个简单的sql语句
- 作业删除不掉
- ora-000409?? for update
- 求助谁有powerdesigner10的key号!麻烦给一个,谢谢!非常急!在线等待(100分)
- 关于date类型存日期时间的问题
- 关于IMP无反映?
- 在oracle里如何利用帮助查找一些命令的参数?
- 查询到的数据重复
- 新手的问题:“ERROR ORA-12560: TNS: 协议适配器”
- 如何在查询中添加空值!!
- 一个非常基础的问题???????????????
char *rname;
char *rurl;
rname=(char*)malloc(100);
rurl=(char*)malloc(100);
换成
char rname[100];
char rurl[100];
//rname=(char*)malloc(100);
//rurl=(char*)malloc(100);
就要以了.但关于oracle里是number类型的数据怎么处理呀.变量怎么声明,并打印?
另外如果对一个表insert和update时,只执行OCIStmtPrepare (select_p, errhp,mySql, strlen(mySql), OCI_NTV_SYNTAX, OCI_DEFAULT) 和 OCITransCommit (svchp,errhp,OCI_DEFAULT ); 怎么不以呢?加了OCIStmtExecute也不成.为什么?请各位指点..