Utilizzare tnsnames.ora in Oracle SQL Developer


137

Sto valutando Oracle SQL Developer .

My tnsnames.oraè popolata e la tnspingconnessione a definita in tnsnames.orafunziona benissimo. Tuttavia, SQL Developer non visualizza alcuna connessione.

Oracle SQL Developer Soars menziona che se

hai un software client Oracle e un file tnsnames.ora già installato sul tuo computer, Oracle SQL Developer popolerà automaticamente il navigatore Connections dai nomi dei servizi di rete definiti in tnsnames.ora.

Ho anche provato a impostare la mia TNS_ADMINvariabile d'ambiente, ma dopo aver riavviato SQL Developer non ci sono ancora connessioni visualizzate.

Qualche idea?
Qualcuno lavora con successo con SQL Developer e tnsnames.ora?


Ho scaricato e installato Oracle SQL Developer per connettermi a un database Oracle 11g già esistente. Ma sembra che dovrò scaricare e installare anche il software client Oracle, quale utilizzo se mi trovo su Windows 10?
VoodooChild,

Risposte:


219
  • In SQLDeveloper sfoglia Tools --> Preferences, come mostrato nell'immagine seguente.

    SQL Preferenze di accesso allo sviluppo

  • Nelle opzioni Preferenze inexpand Database --> select Advanced --> under "Tnsnames Directory" --> Browse the directory cui tnsnames.ora è presente.
  • Quindi fare clic su OK , come mostrato nel diagramma seguente.
    tnsnames.ora disponibile aDrive:\oracle\product\10x.x.x\client_x\NETWORK\ADMIN

    SQLDeveloper aggiorna la directory tnsnames

Ora puoi connetterti tramite le opzioni di TNSnames .


4
tutti, solo un piccolo aggiornamento su questo vecchio (ma abbastanza utile) post: non provate a usare un link simbolico su Windows. Lo sviluppatore SQL non sembra sapere come usarlo. Mi ha fatto perdere un po 'di tempo. Spero che salverà il tuo.
Hellday5432,

@ Hellday5432 - Sì, è corretto. SQL Dev funziona su Java che non comprende le scorciatoie; ad esempio quando si apre un file non è possibile utilizzare un collegamento per passare a una directory.
Kent Pawar,

5
Collegamento di Windows! = Collegamento simbolico. howtogeek.com/howto/16226/…
Matt Lachman,

Ho scaricato e installato Oracle SQL Developer per connettermi a un database Oracle 11g già esistente. Ma sembra che dovrò scaricare e installare anche il software client Oracle, quale utilizzo se mi trovo su Windows 10?
VoodooChild,

Non vedo l'opzione di directory Tnsnanes nella mia versione 1.5.5 di SQL Developer.
Amit Chaurasia,

24

Questa eccellente risposta a una domanda simile (che prima non riuscivo a trovare prima) mi ha aiutato a risolvere il problema.

Copia del contenuto dalla risposta referenziata:

SQL Developer cercherà nella seguente posizione in questo ordine un file tnsnames.ora

$ HOME / .tnsnames.ora
$ TNS_ADMIN / tnsnames.ora
Chiave di ricerca TNS_ADMIN nel registro
/etc/tnsnames.ora (non windows)
$ ORACLE_HOME / network / admin / tnsnames.ora
LocalMachine \ SOFTWARE \ ORACLE \ ORACLE_HOME_KEY
LocalMachine \ \ ORACLE \ ORACLE_HOME

Se il file tnsnames.ora non viene riconosciuto, utilizzare la seguente procedura:

Definire una variabile ambientale denominata TNS_ADMIN per puntare alla cartella che contiene il file tnsnames.ora.

In Windows,
puoi farlo accedendo a Pannello di controllo> Sistema> Impostazioni di sistema avanzate> Variabili d'ambiente ... In Linux, definisci la variabile TNS_ADMIN nel file .profile nella tua home directory.

Conferma che il sistema operativo sta riconoscendo questa variabile ambientale

Dalla riga di comando di Windows: echo% TNS_ADMIN%

Da Linux: echo $ TNS_ADMIN

Riavvia SQL Developer Ora in SQL Developer fai clic con il pulsante destro del mouse su Connessioni e seleziona Nuova connessione .... Seleziona TNS come tipo di connessione nella casella a discesa. Le voci da tnsnames.ora ora dovrebbero essere visualizzate qui.


3
So che è passato un po 'di tempo, ma puoi estrarre la parte pertinente della risposta qui? Nel caso in cui quella risposta (o anche la domanda) venga mai cancellata.
Dennis Meng,

1
fondamentalmente si arrotonda all'impostazione della variabile di sistema TNS_ADMIN (perché SQL Developer cerca lì ~ prima) e, dopo aver riavviato SQL Developer, scegliendo Nuova connessione e nell'elenco a discesa Tipo di connessione, invece di Base, scegliendo TNS - così - tnsnames è visto bene, ma non dovresti aspettarti che le connessioni vengano popolate automaticamente (è stato il caso con me)
hello_earth

la ricerca mi ha portato, quindi ho aggiornato la risposta poiché c'è già un riferimento all'autore @DennisMeng
TheGameiswar,

7

Ho avuto lo stesso problema, ha tnsnames.orafunzionato bene per tutti gli altri strumenti ma SQL Developer non lo avrebbe usato. Ho provato tutti i suggerimenti sul web che ho trovato, comprese le soluzioni sul link fornito qui.
Niente ha funzionato.

Si scopre che il database è stato caching copie di backup di tnsnames.oracome tnsnames.ora.bk2, tnsnames09042811AM4501.bak, tnsnames.ora.bkecc Questi file non erano leggibili da parte dell'utente medio.

Ho il sospetto che sqldeveloper corrisponda al modello per il nome e stava cercando di leggere una di queste copie di backup e non ci riuscì. Quindi fallisce semplicemente con grazia e non mostra nulla nell'elenco a discesa.

La soluzione è rendere tutti i file leggibili o eliminare o spostare le copie di backup dalla directory di amministrazione.


Questo è probabilmente esattamente quello che stai vedendo. SQL Plus e SQL Developer entrambi vedono / analizzano / leggono tnsnames - quindi se uno è cattivo, ciò potrebbe precipitare e causare il tuo problema.
thatjeffsmith,


0

Sulle versioni più recenti di macOS, è necessario impostare anche uno java.library.path. Il modo più semplice / sicuro per farlo [1] consiste nel creare un ~/.sqldeveloper/<version>/sqldeveloper.conffile e popolarlo come tale:

AddVMOption -Djava.library.path=<instant client directory>

[1] https://community.oracle.com/message/14132189#14132189

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.