Na verdade não chame as entradas do TNSNAMES.ORA de "SID" porque elas não são isso, ok ? Isso evita muita confusão de conceitos....Muito bem : se vc vai acessar por uma tool de linha de comando um banco remoto (como é o seu caso) não tem segredo, vc TEM que ter uma entrada apropriada para esse banco no TNSNAMES.ORA (tomando o CUIDADO de confirmar que vc não tem em lugar nenhum assignado valor pra variável TNS_ADMIN apontando pra algum lugar não-padrão) e TEM que ter as variáveis ORACLE_HOME e PATH setadas apontando para ESSE home aonde no diretório NETWORK/ADMIN vc tem o TNSNAMES.ORA correto....Pra testar e demonstrar que não tem NADA A VER a entrada no TNSNAMES.ORA com o SID, num ambiente onde tenho 100% de Certeza que não há variável TNS_ADMIN setada, no software client Oracle instalado em d:\oracledb19c (que inclusive é o client que veio com um database local também instalado mas não importa) eu quero configurar ele para acessar um database que reside na máquina de IP 192.168.10.20 e atendido por um listener ouvindo na porta 1521 com o SERVICE_NAME XE, vou chamar a entrada de ABOBORA :
C:\Users\User 2am>SET ORACLE_HOME=d:\oracledb19c C:\Users\User 2am>SET PATH=%ORACLE_HOME%\bin;%PATH% C:\Users\User 2am>type %ORACLE_HOME%\network\admin\tnsnames.ora # tnsnames.ora Network Configuration File: D:\OracleDB19c\NETWORK\ADMIN\tnsnames.ora # Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1527)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ABOBORA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.20)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) C:\Users\User 2am> C:\Users\User 2am>tnsping abobora TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 27-MAI-2020 12:25:43 Copyright (c) 1997, 2019, Oracle. All rights reserved. Arquivos de parâmetros usados: d:\oracledb19c\network\admin\sqlnet.ora Usado o adaptador TNSNAMES para resolver o apelido Tentativa de contatar (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.20)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE))) OK (90 ms) ==> muito bem, o LISTENER provado acessível pelo TNSPING, vamos efetivamente conectar com essa entrada ABOBORA : C:\Users\User 2am>sqlplus system/oracle@abobora SQL*Plus: Release 19.0.0.0.0 - Production on Qua Mai 27 12:25:58 2020 Version 19.3.0.0.0 Copyright (c) 1982, 2019, Oracle. All rights reserved. Horário do último log-in bem-sucedido: Ter Mai 26 2020 16:49:31 -03:00 Conectado a: Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production Version 18.4.0.0.0 WHERE -------------------------------------------------- CNTNR=CDB$ROOT 1 linha selecionada. SYSTEM@abobora::CNTNR=CDB$ROOT> ==> faça EXATAMENTE esses testes aí na sua máquina que com certeza vc Consegue conectar, ou então descobrir onde está teu erro.... []s Chiappa Em quarta-feira, 27 de maio de 2020 11:37:10 BRT, Eduardo Perdomo panc...@gmail.com [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu: Bom dia. Esqueci de mencionar que SID, nesse exemplo são as entradas no TNSNAMES.ORA, pois consigo acessar normalmente os dois bancos via sqlplus/navigator/dbexpress etc.O problema é só no sqlldr que não reconhece a entrada do tbsnames, alias, só está reconhecendo uma, como se fosse um default. On Wed, May 27, 2020 at 9:37 AM Jose Laurindo Chiappa jlchia...@yahoo.com.br [oracle_br] <oracle_br@yahoogrupos.com.br> wrote: Ah, só complementando : nessa toada de conectar via software client Oracle (conexão jdbc thin é outra coisa, é conexão direta sem client Oracle) sem que vc edite/monte um TNSNAMES.ORA na sua máquina, além de informar os dados de conexão todos vc tem TAMBÉM as possibilidades de : a) conexão via EZCONNECT, onde vc informa usuario/senha@servername:port/instanceOUservice_name, vide How To: Perform a direct connect to Oracle without a tnsnames.ora file ou b) vc pode setar a variável TNS_ADMIN apontando pra algum local da sua rede onde alguém já criou um arquivo TNSNAMES.ORA 'público', todo mundo usa ele Okdoc ?? | | | | How To: Perform a direct connect to Oracle without a tnsnames.ora file Technical Article Details : How To: Perform a direct connect to Oracle without a tnsnames.ora file | | | Em quarta-feira, 27 de maio de 2020 09:23:40 BRT, Jose Laurindo Chiappa <jlchia...@yahoo.com.br> escreveu: Blz ? Então, vamos por ordem aí : PRIMEIRO, o que vc informa depois do @ absolutamente *** NÃO É *** um SID, não : isso é uma ENTRADA DE HOST NO ARQUIVO TNSNAMES.ORA, ok ??? NADA A VER, o SID é o identificador da instância, vc até PODE conectar por ele (principalmente se ele for local) mas são coisas Completamente Diferentes.... No seu caso, como vc está numa máquina que tem um database Oracle local, com CERTEZA vc tem (no registry, provavelmente) uma variável ORACLE_SID apontando pra esse banco DEV, E COMO EU DISSE, banco local vc consegue conectar só por SID.... Mas como PROD é um banco remoto, vc NÂO TEM COMO conectar só por SID, vc TEM que informar um @entradadotns , E TEM QUE CRIAR a entrada correspondente no arquivo TNSNAMES.ORA, certo ?? repito, conexão por SID é só para banco local, para banco remoto vc TEM que ter uma entrada correspondente à esse banco no TNSNAMES.ORA e TEM QUE informar essa entrada para as tools de conexão após um @ , blz ? []s Chiappa OBS : não que eu recomende se fazer isso mas para Informação, em algumas tools Oracle (como sqlplus, por exemplo) até é possível vc ao invés de informar uma entrada no TNSNAMES.ORA vc passar todos os detalhes da conexão, vide https://asktom.oracle.com/pls/apex/asktom.search?tag=how-to-connect-sqlplus-without-tnsnamesora por exemplo.... ----------------------------- Bom dia. Estou tentando fazer um insert via sqlldr no oracle. Tenho dois bancos, dev e prod, sendo dev no meu note e prod em outra máquina Quando não especifico o sid no parametro userid=usuario/senha aponta para o banco local dev Quando especifico o SID como userid=usuario/senha@prod, não encontra o banco do SID prod Como tivesse como default o banco/sid dev. Será alguma variável ?-- Eduardo Perdomo Consultor de Implantação Totvs - www.totvs.com..br (21) 96845-8592 panc...@gmail.com eduardo.perd...@totvs.com.br -- Eduardo PerdomoConsultor de ImplantaçãoGrupo PC Sistemas - www.grupopc.com.br (21) 6845-8592pancary@gmail.comeduardo.perd...@pcinformatica.com.brBlog: eduardo.perdomo.nom.br