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
Blz ? Então, vamos por odem 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
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
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.
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 conceitosMuito 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
E só acrescentando, eu ** REPITO ** : vc só consegue conectar com o SID
indicado na variável ORACLE_SID ** para bancos LOCAIS **, como é o banco DEV
que vc diz ter na sua máquina - um banco REMOTO, residindo em OUTRA MÁQUINA, vc
ABSOLUTAMENTE TEM que ter uma entrada no arquivo TNSNAMES.ORA **
Mostrando que pro sql*loader é EXATAMENTE A MESMA COISA, eis um exemplo nesse
mesmo ambiente que citei na msg anterior, com ORACLE_HOME e PATH setados, etc :
=> crio uma tabelinha no banco-destino :
SYSTEM@abobora::CNTNR=CDB$ROOT> create table EMPLOYEE
2 (
3 id number,
4 name
Boa noite.
Consegui resolver com a seguinte solução:
https://hs2n.wordpress.com/2012/06/12/oracle-using-sqlplus-and-sqlldr-on-databases-without-tnsnames-entry/#comment-700
Obrigado a todos.
On Wed, May 27, 2020 at 8:38 PM Jose Laurindo Chiappa jlchia...@yahoo.com.br
[oracle_br] wrote:
>
>
>
Sem dúvida, Étore : só agora que o colega mostrou é que percebi que ele tem
discrepância de versões E além disso o client 10g é de uma versão SEM SUPORTE
para conectar em banco 11g, e respondi isso pra ele... Realmente nada como um
TESTE PRÁTICO pra gente pegar esses detalhes
[]s
Blz ? Então, principalmente quando vc tem múltiplos produtos Oracle na sua
máquina , vc SIMPLESMENTE TEM QUE setar diretamente a ORACLE_HOME e o PATH, sob
penas de confusões as maiores... E ao que parece vc TEM SIM um client Oracle
10.2.0.3 E um banco 11.2.0.1 , banco esse que OBVIAMENTE já
Teu sqlplus é de um oracle_home (10g) e o teu sqlloader é de outro (11g).
Étore
From: oracle_br@yahoogrupos.com.br
Sent: quarta-feira, 27 de maio de 2020 17:39
To: oracle_br@yahoogrupos.com.br
Subject: Re: [oracle_br] Insert Via sqlldr
Segue os testes:
1-) Conectado no banco
Segue os testes:
1-) Conectado no banco local
c:\Temp>sqlplus local/local@local
SQL*Plus: Release 10.2.0.3.0 - Production on Qua Mai 27 17:19:11 2020
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Conectado a:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit
12 matches
Mail list logo