Amigo, confere o tnsnames e faltou também o SID na hora do connect.
att. Anderson Santiago DBA Sr. www.ruevers.webs.com ----- Mensagem original ---- De: Alfredo Guimarães <[EMAIL PROTECTED]> Para: [email protected] Enviadas: Segunda-feira, 28 de Abril de 2008 17:12:46 Assunto: [oracle_br] PRO*C com Oracle 10G Pessoal, há alguém que possa me ajudar? PROBLEMA: tenho uma aplicação em C que executa o seguinte código para conectar ao banco: void con_bd (void) /* Conectar `a Base de Dados Oracle. */ { /* EXEC SQL BEGIN DECLARE SECTION; */ /* VARCHAR username [50]; */ struct { unsigned short len; unsigned char arr[50]; } username; /* VARCHAR password [50]; */ struct { unsigned short len; unsigned char arr[50]; } password; /* EXEC SQL END DECLARE SECTION; */ /* Obter das variaveis de ambiente o nome e a senha da base de dados a ser acessada. */ strcpy ( (char *) username.arr, (char *) getenv ("ads_bdus") ); username.len = strlen (username.arr) ; strcpy ( (char *) password.arr, (char *) getenv ("ads_bdpw") ); password.len = strlen (password.arr) ; /* Logar na ORACLE. */ /* EXEC SQL WHENEVER SQLERROR DO sqlerror (); */ /* EXEC SQL CONNECT :username IDENTIFIED BY :password; */ { sqlstm.iters = (unsigned int )10; sqlstm.offset = (unsigned int )2; sqlstm.cud = sqlcud0; sqlstm.sqlest = (unsigned char *)&sqlca; sqlstm.sqlety = (unsigned short)0; sqlstm.sqhstv[ 0] = (unsigned char *)&username; sqlstm.sqhstl[ 0] = (unsigned int )52; sqlstm.sqindv[ 0] = ( short *)0; sqlstm.sqharm[ 0] = (unsigned int )0; sqlstm.sqhstv[ 1] = (unsigned char *)&password; sqlstm.sqhstl[ 1] = (unsigned int )52; sqlstm.sqindv[ 1] = ( short *)0; sqlstm.sqharm[ 1] = (unsigned int )0; sqlstm.sqphsv = sqlstm.sqhstv; sqlstm.sqphsl = sqlstm.sqhstl; sqlstm.sqpind = sqlstm.sqindv; sqlstm.sqparm = sqlstm.sqharm; sqlstm.sqparc = sqlstm.sqharc; sqlcex(&sqlctx, &sqlstm, &sqlfpn); if (sqlca.sqlcode < 0) sqlerror(); } este código funciona perfeitamente com o oracle8i. porém quando tento executá-lo no Oracle 10g ocorre o seguinte erro: SQLNET.LOG OBS: (HOST=yyyyy) (USER=xxxxx) ) eu alterei os verdadeiros Fatal OSN connect error 12545, connecting to: (DESCRIPTION= (ADDRESS= (PROTOCOL= beq)(PROGRAM= /home/oraaurig/ app/frs10g/ product/10. 1.2/bin/oracle) (ARGV0=oracleboc aina10i1) (ARGS='(DESCRIPT ION=(LOCAL= YES)(AD DRESS=(PROTOCOL= beq)))')( DETACH=NO) )(CONNECT_ DATA=(CID= (PROGRAM= ) (HOST=yyyyy) (USER=xxxxx) ))) VERSION INFORMATION: TNS for SVR4: Version 2.1.6.0.0 - Production Unix Domain Socket IPC NT Protocol Adaptor for SVR4: Version 2.1.6.1.0 - Production Oracle Bequeath NT Protocol Adapter for SVR4: Version 2.1.6.1.0 - Production TCP/IP NT Protocol Adapter for SVR4: Version 2.1.6.1.0 - Production Time: 28-APR-08 16:43:02 Tracing not turned on. Tns error struct: nr err code: 12206 TNS-12206: TNS:received a TNS error during navigation ns main err code: 12545 TNS-12545: Connect failed because target host or object does not exist ns secondary err code: 12560 nt main err code: 515 TNS-00515: Connect failed because target host or object does not exist nt secondary err code: 2 nt OS err code: 0 MINHA PERGUNTA, quando eu executo o sqlplus na linha de comando apenas passando o user e password o que tem que estar setado em meu ambietne para não ocorrer o erro acima??? OBS: meu ambiente está em UNIX Solaris 10. obrigado para quem possa me ajudar. Alfredo [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
