首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于PRO*C获取索引名的有关问题,待

2011-12-13 
关于PRO*C获取索引名的问题,急!!!在线等待!我的PC代码如下:5.intCDBOracle::getindexs(char*tablename)6.{

关于PRO*C获取索引名的问题,急!!!在线等待!
我的PC代码如下:
5.int   CDBOracle::getindexs(char*   tablename)
6.{
9.for(int   i=0;i <n_indexcount;i++)
10.{
11.memset(r_ExistIndex[i],0,60);
12.}
13.int   rec   =   -1;
14.sprintf((char   *)dynstmtsql,
15. "SELECT   INDEX_NAME   INTO   :   R_INDEXNAME   FROM   USER_IND_COLUMNS   WHERE   TABLE_NAME   =   '%s ' ",tablename);

18.EXEC   SQL   PREPARE   stm   FROM   :dynstmtsql;
19.EXEC   SQL   DECLARE   cur3   CURSOR   FOR   stm;
20.EXEC   SQL   OPEN   cur3;
21.EXEC   SQL   FETCH   cur3   INTO   :r_ExistIndex;
22.rec   =   (int)sqlca.sqlerrd[2];
23.EXEC   SQL   CLOSE   cur3;            
24.for   (i   =   0;   i   <   rec   ;i++   )
25.{
26.r_ExistIndex[i][59]=0;
27.trimSpace(r_ExistIndex[i]);
28.}
29.return   rec;
30.}
其代码就是将某表的索引名称保存在ExistIndex中,其中SQL语句在PLSQL中运行没有问题,而且换过select   index_name   from   user_indexes   where   table_name   =   tablename;效果相同,出来的结果有两个错误
1为ORA-   -2108ORA--2108:   Message   -2108   not   found;     product=RDBMS;   facility=ORA
2为ora-24337:未准备语句句柄

请大虾们帮我看一下。在线等待,谢谢。


[解决办法]
r_ExistIndex怎么声明的?
请贴出代码
还有,lz确定程序连接上数据库了?
[解决办法]
看不出什么,建议在每个步骤之间加入调试信息进行调试

热点排行