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.