pro* 问题 我想用pro*c 在 linux下连接oracle数据库老是连接不上希望有人能和我联系。QQ:305806807 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 报的是数据库连接不上。 编译都通过了。 我的数据库的实例名为:ORCL 用户名为:sciarry 密码为: sciarry远程连接数据库没问题,但是这个程序始终连接不上。 ORA-12154 但是连接和实例名没有一点问题啊!代码如下:#include "sqlca.h"#include <stdio.h>#include <string.h>#include <stdlib.h>int main(int argc,char **argv){ EXEC SQL BEGIN DECLARE SECTION; VARCHAR user[20],pass[20],tnsname[20],name[20]; char name1[100]; EXEC SQL END DECLARE SECTION; int i=0; strcpy(user.arr,"sciarry"); user.len=strlen((char *)user.arr); strcpy(pass.arr,"sciarry"); pass.len=strlen((char *)pass.arr); strcpy(tnsname.arr,"ORCL"); tnsname.len=strlen((char *)tnsname.arr); printf("----------------------------------------------"); /*Connect the DB*/ EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname; char crruentDate[15];printf("----------------------------------------------"); printf("success\n"); } 确保Oracle相关环境变量都导上了。不然,肯定连不上。tnsping ORCL试一下是否tnsname连不通,先。 tnsname 怎么测试呢? 我对tnsname搞不太懂。 我不知道服务器的名字 是不是 主机的名字呢?此处,假设服务器名为testserver,服务名为orcl.testserver.com,使用的侦听端口为1521,则tnsnams.ora文件中的一个test网络服务名(数据库别名)为: test = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521)) ) (CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com) ) 把下面这几句改了user.len=8;pass.len=8;tnsname.len=5; 用printf("%s\n",sqlca.sqlerrm.sqlerrmc);看看 Oracle的“实例磁盘 I/O”多少算比较高了? SQL? oracle能运行为什么命令不能用啊 PLW-07203: 使用 NOCOPY 编译器提示可能对参数 'NAME' 有所帮助 ORACLE 表数据使用 oracle中select语句如何增加查询行数限制? 升星,散分...... 复杂sql查询,请高手帮忙!急!!! 如何取得排序后的第一行记录 关于一个redo缓冲区的问题 imp 命令数据覆盖失败(java、Oracle) Oracle数据库不能显示中文
我的数据库的实例名为:ORCL
用户名为:sciarry
密码为: sciarry
远程连接数据库没问题,但是这个程序始终连接不上。 ORA-12154 但是连接和实例名没有一点问题啊!代码如下:#include "sqlca.h"
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc,char **argv)
{
EXEC SQL BEGIN DECLARE SECTION; VARCHAR user[20],pass[20],tnsname[20],name[20];
char name1[100];
EXEC SQL END DECLARE SECTION;
int i=0;
strcpy(user.arr,"sciarry");
user.len=strlen((char *)user.arr);
strcpy(pass.arr,"sciarry");
pass.len=strlen((char *)pass.arr);
strcpy(tnsname.arr,"ORCL");
tnsname.len=strlen((char *)tnsname.arr);
printf("----------------------------------------------");
/*Connect the DB*/
EXEC SQL CONNECT :user IDENTIFIED BY :pass USING :tnsname; char crruentDate[15];
printf("----------------------------------------------");
printf("success\n");
}
tnsping ORCL试一下是否tnsname连不通,先。
test =
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT=1521))
)
(CONNECT_DATA=(SERVICE_NAME=orcl.testserver.com)
)
pass.len=8;
tnsname.len=5;