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]

Responder a