主机:Aix5.3
编译:gcc代码很简单:
int i;
char cftp_usr[21];
sprintf(username,"test");
sprintf(password,"test");
sprintf(dbhost,"cur.test.com");
memset(cftp_usr,0,sizeof(cftp_usr));
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");
EXEC SQL WHENEVER NOTFOUND DO nothing();
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbhost;
/*下一句执行错误 */
EXEC SQL SELECT ftp_user into :cftp_usr FROM KPI_FTP_INFO where busi_type=1;
/* 正常 */
EXEC SQL select kpi_op_accept.nextval into :op_accept from dual; EXEC SQL COMMIT WORK;
用dbx跟踪后:
"sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);" is executed.Illegal instruction (reserved addressing fault) in . at 0x0 ($t1)
0x00000000 00000000 Invalid opcode.
编译:gcc代码很简单:
int i;
char cftp_usr[21];
sprintf(username,"test");
sprintf(password,"test");
sprintf(dbhost,"cur.test.com");
memset(cftp_usr,0,sizeof(cftp_usr));
EXEC SQL WHENEVER SQLERROR DO sql_error("ORACLE error--\n");
EXEC SQL WHENEVER NOTFOUND DO nothing();
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dbhost;
/*下一句执行错误 */
EXEC SQL SELECT ftp_user into :cftp_usr FROM KPI_FTP_INFO where busi_type=1;
/* 正常 */
EXEC SQL select kpi_op_accept.nextval into :op_accept from dual; EXEC SQL COMMIT WORK;
用dbx跟踪后:
"sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);" is executed.Illegal instruction (reserved addressing fault) in . at 0x0 ($t1)
0x00000000 00000000 Invalid opcode.
解决方案 »
- 电脑ip地址变了以后,oracle服务器不能用怎么办?大虾来帮忙~~
- 新人求教一个菜鸟问题
- 用FORM BUILDER 去打开一个FMB 文件,结果出了FRM-10043:打不开文件
- Oracle Berkeley DB的的3个版本都有什么区别啊。
- oracle 81存储过程里面如何按照规定的年份进行查询啊?给分的!
- 请问我应该安装什么样的客户端?
- 求SQL语句
- ORACLE的一个查询问题
- 如何替换某个字段中的回车换行符?急!!!!
- 小弟是ORACLE的初学者,在ORACLE中怎样做几个表的接连删除,如果在delphi中又如何调用?(在线等待)
- oralce存储过程execute immedeate 的参数使用问题
- 如何将某个表中符合条件的而且纪录数多于一条的信息查询出来
EXEC SQL SELECT ftp_user into cftp_usr FROM KPI_FTP_INFO where busi_type=1;
sql变量我是单独贴过来的,在通讯区定义的。
后面那一句是出错后将cftp_usr注释能通过,所以对char很疑惑,因为在通讯区分别尝试过varchar和char,都是出错。
cftp_usr不加冒号我还真没尝试过,因为这个是移植过来的程序,在另外的主机上能正常运行,同样是aix5.3。
唯一的区别是原数据库客户端是9i后来的是10g。
EXEC SQL INCLUDE sqlca;
#define SQLCODE sqlca.sqlcode在出错的那句加
if(SQLCODE)
printf("[ERR=%d]\r\n",SQLCODE);然后用 oerr
看下具体是什么错.
而且这个错误没有被sqlcode截获。直接就是coredump了。
现在郁闷的很,这个错误如果不能解决,就考虑是否需要用proc了。
而且CORE在了oracle的库函数里面。
你的客户端装的有没有问题啊?
你把你的客户端版本写出来看看。
[code]
int i;
char cftp_usr[21]; [/code]明显没有放在通讯区里面