Obrigado pela atenção, Mas resolvi o problema ........ é que no UNIX quando vc que acessar o banco na rede sem informar o SID(ou seja só username/password), a variável de ambiente TWO_TASK deve ser "setada" na shell ( .profile ou .user_login ou ....)
[]s Alfredo 2008/4/29 Anderson Santiago <[EMAIL PROTECTED]>: > 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] <alfredogui%40gmail.com>> > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > 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] > > > [As partes desta mensagem que não continham texto foram removidas]