Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1119322
  • 博文数量: 284
  • 博客积分: 8223
  • 博客等级: 中将
  • 技术积分: 3188
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 13:26
文章分类

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类: C/C++

2010-05-19 14:30:09

win上安装oracle,在cygwin上连接数据库。使用默认方式建库,数据库名为orcl, 用户nari

0.    oracle的路径下文件拷贝到指定文件夹下,然后在编译makefile中写明相关路径,修改unix下程序编译的库文件名为-loci,程序编译成功

1.         执行时,发现程序连接数据库不成功,sqlplus nari/xxx@orcl正常,检查程序,发现程序中连接数据库使用的是localhost而不是主机名。

2.       于是修改oraclelistener.oratnsnames.ora文件,将其中所有写主机名的地方修改为127.0.0.1,重启数据库服务后使用sqlplus nari/xxx@orcl登录不上去。

3.         在网上查了好多帖子后来试了把下面的:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )
改成:
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
      #(PROGRAM = extproc)
    )
  )

sqlplus nari/xxx@orcl登录成功,但是使用程序连接数据库仍然失败;程序中调用OCIEnvCreate的函数执行后返回-1,而且参数pOraEnv->envhp分配空间未成功;

 

4.        最后发现, 程序中OCIEnvCreate换成OCIInitializeOCIEnvInit 则程序正常,不知道是否是兼容性方面的问题;此外,使用单用户方式连接数据库OK,使用多用户方式连接数据库出现异常。


阅读(3304) | 评论(0) | 转发(0) |
0

上一篇:世博会一日游

下一篇:MySQL分区性能初探

给主人留下些什么吧!~~