Introduzione
Oracle SQL Developer è un potente strumento di sviluppo con molte funzionalità per interagire con i database Oracle. Oltre a scrivere e inviare istruzioni SQL utilizzando il foglio di lavoro SQL, SQL Developer dispone di potenti strumenti per la gestione di database, la progettazione e il reverse engineering di database utilizzando modelli di dati ed esecuzione di processi di data mining. La versione più recente (versione 19.4 al 20 dicembre 2019) include alcuni strumenti di amministrazione del database di base, supporto per query REST e analisi di documenti JSON.
Se stai lavorando su MacOSX, le istruzioni sull'installazione e sull'utilizzo di SQL Developer su MacOSX sono disponibili qui.
La sezione successiva di questo tutorial riguarda il download e l'installazione di SQL Developer. Se hai già scaricato e installato SQL Developer, potresti voler passare alla pagina successiva per scoprire come creare una nuova connessione al database.
Verso la fine di questo tutorial, ci sono alcune pagine che trattano come scrivere, eseguire e salvare istruzioni SQL, come esportare dati usando SQL Developer e come importare dati in Oracle usando SQL Developer. Potresti anche essere interessato a utilizzare SQL Developer per decodificare uno schema Oracle. Quel tutorial è collegato qui.
Download e installazione di SQL Developer
SQL Developer può essere scaricato gratuitamente dalla rete di Oracle Developer. SQL Developer richiede un kit di sviluppo Java per funzionare. Ad esempio, SQL Developer versione 4.1.3 e successive richiedono JDK 1.8.
Visita il seguente link per scaricare i file di SQL Developer:
http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
Seleziona la versione che corrisponde al tuo sistema operativo (e che include il JDK se necessario). Il resto di questo tutorial è stato completato utilizzando la versione di Windows.
Il download di SQL Developer è un singolo file .zip, ad esempio:sqldeveloper-4.1.3.20.78-no-jre.zip (o una versione più recente come sqldeveloper-17.4.0.355.2349-x64.zip)
Decomprimere il file zip di SQL Developer in un'unità appropriata. Il risultato dovrebbe essere una semplice cartella sqldeveloper.
Fare doppio clic sull'eseguibile sqldeveloper.exe. Potrebbe apparire una finestra di dialogo che richiede di specificare il percorso della directory home del Java Development Kit (JDK).
Fare clic sul pulsante Sfoglia e passare alla cartella home di JDK.
Fare clic su Seleziona cartella e il percorso del JDK apparirà nella finestra di dialogo:
Fare clic sul pulsante OK e SQL Developer verrà avviato
Una volta che SQL Developer è in esecuzione, vedrai la seguente schermata:
Configurazione di una nuova connessione al database
Il primo ordine del giorno è creare una nuova connessione al database Oracle. Per stabilire una nuova connessione dovrai sapere:
- Il nome (o l'indirizzo IP) del server che esegue Oracle. Se hai installato Oracle sul tuo computer locale, è probabile che tu possa utilizzare "localhost" (o 127.0.01).
- Il numero di porta TCP/IP su cui è in esecuzione il processo Oracle Listener. L'impostazione predefinita per Oracle prevede l'utilizzo della porta 1521. A meno che non sia stata configurata in modo diverso, utilizzare 1521.
- L'identificatore di sistema Oracle (SID) o il nome del servizio che identifica l'istanza Oracle specifica sul server.
Alcune combinazioni comuni potrebbero essere:
- Oracle 11g o 12c Enterprise Edition installato sullo stesso server (locale) o PC:Host:localhost, Porta:1521, SID:orcl
- Oracle 11g Express Edition installato sullo stesso server (locale) o PC:Host:localhost, Porta:1521, SID:xe
- Oracle 11g o 12c Enterprise Edition installato sul server remoto:Host:myhostname.domain.com, Port:1521, SID:orcl
- Oracle 12c Enterprise Edition installato sul server remoto utilizzando il database multi-tenant:Host:myhostname.domain.com, Port:1521, Service Name:pdb1
- Data Warehouse Autonoma Oracle o Database Autonomous Transaction Processing su cui è in esecuzione Oracle Cloud:modificare il Tipo di connessione a Cloud Wallet e quindi seleziona il file .zip del tuo portafoglio scaricato dall'istanza del database cloud. Segui queste istruzioni (Pagina 6).
Tieni presente che se il tuo DBMS di destinazione è un database autonomo in Oracle Cloud, dovrai seguire istruzioni leggermente diverse che utilizzano Oracle Cloud Wallet. Segui queste istruzioni (Pagina 6) per impostare una connessione a un Database autonomo.
Per iniziare a configurare la nuova connessione, fai clic sulla freccia in basso accanto al segno + verde e seleziona Nuova connessione...
Verrà visualizzata la finestra predefinita "Nuovo/Seleziona connessione database".
Assegna un nuovo nome alla tua connessione e inserisci il nome utente e la password per l'account del database Oracle a cui desideri connetterti.
Compilare Hostname con il nome host Internet o l'indirizzo IP del server su cui è in esecuzione il database Oracle. Imposta la porta in modo che corrisponda a dove è in esecuzione Oracle Listener (1521 è l'impostazione predefinita tipica).
Se l'host dispone di un Oracle System Identifier (SID) impostato, digitarlo. Altrimenti, se il server Oracle utilizza multi-tenant (tramite Oracle 12c o versioni successive), selezionare Nome servizio e fornire il nome del servizio per l'istanza del database.
Altre impostazioni avanzate di autenticazione, crittografia e sicurezza possono quindi essere specifiche, se necessario.
Di seguito è riportato un esempio di connessione a un'istanza Oracle 12c sul server locale utilizzando l'account di sistema Oracle. La password per questo account è stata impostata durante l'installazione del database.
Testare la connessione facendo clic sul pulsante di prova. Nota lo stato nell'angolo in basso a sinistra per vedere se sono presenti messaggi di errore. L'immagine sotto mostra "successo":
Tipici errori di accesso e cose da controllare
Esistono diversi motivi per cui SQL Developer potrebbe non stabilire una connessione corretta a Oracle Server. Alcuni dei potenziali problemi e soluzioni più comuni sono elencati di seguito. Tieni presente l'architettura Oracle "Client/Server" e il fatto che esiste una rete tra di loro.
Stato:errore -Test non riuscito:errore IO:la scheda di rete non è riuscita a stabilire la connessione |
Si è verificato un problema di connessione in rete tra il client SQL Developer e il server di database Oracle. Il nome host (o l'indirizzo IP) o il numero di porta non sono corretti. Oppure qualche altro problema di rete (DNS, Firewall, ecc.) impedisce a SQL Developer di connettersi al server Oracle. È anche possibile che Oracle Listener (il servizio di rete che accetta le connessioni in ingresso) non sia in esecuzione o sia in ascolto su una porta di rete diversa. Prova a utilizzare traceroute (tracert su Windows) per vedere se è possibile raggiungere il server. Verifica che Oracle Database sia attivo e funzionante insieme al servizio Oracle Listener e che nessun firewall stia bloccando le connessioni alla porta 1521.
Stato:errore -Test non riuscito:il listener ha rifiutato la connessione con il seguente errore: ORA-12505, TNS:l'ascoltatore non conosce attualmente il SID fornito nel descrittore di connessione |
SQL Developer si sta connettendo correttamente al processo Listener del server Oracle, tuttavia il SID fornito non corrisponde a quello configurato sul server di database.
Stato:errore -Test non riuscito:il listener ha rifiutato la connessione con il seguente errore: ORA-12514, TNS:l'ascoltatore non conosce attualmente il servizio richiesto nel descrittore di connessione |
SQL Developer si sta connettendo correttamente al server Oracle, tuttavia il nome del servizio fornito non corrisponde a quello configurato sul server di database.
Stato:Fallimento -Test non riuscito:ORA-01017:nome utente/password non validi; accesso negato |
SQL Developer si sta connettendo correttamente al server Oracle e all'istanza (quindi nome host, porta e SID o nome servizio sono corretti). Tuttavia il nome utente e/o la password non corrispondono.
Stato:Fallito -Test non riuscito:ORA-28000:l'account è bloccato |
SQL Developer si sta connettendo correttamente al server Oracle e all'istanza (quindi nome host, porta e SID o nome servizio sono corretti). Tuttavia, l'account Oracle è stato bloccato (ad esempio, troppi tentativi di accesso non riusciti o la password è scaduta).
ORA-12518:TNS:l'ascoltatore non ha potuto trasferire la connessione client |
SQL Developer si sta connettendo correttamente al server Oracle e all'istanza (quindi nome host, porta e SID o nome servizio sono corretti). Tuttavia, il listener a sua volta non può effettuare una connessione al database Oracle. Ciò può verificarsi se il database non è in esecuzione o aperto o se il server che esegue Oracle sta esaurendo la RAM. Può succedere anche se c'è un problema di autorizzazioni utente tra il processo listener e i processi del database.
Salvataggio della connessione dello sviluppatore SQL
Se il test ha esito positivo, fai clic sul pulsante Salva per salvare questa connessione.
Connessione al database Oracle
Infine, ora che la connessione è stata verificata e salvata, fai clic sul pulsante Connetti per connetterti al server del database.
Le quattro aree principali dello schermo ora includono:
Finestra di connessione, finestra di Navigatore rapporti, foglio di lavoro SQL e finestra di output dello script. Potresti non visualizzare la finestra Output dello script finché non esegui un'istruzione SQL nel foglio di lavoro SQL. Se per qualche motivo il foglio di lavoro SQL non è visitabile, apri gli Strumenti menu e selezionare il foglio di lavoro SQL voce di menu.
Qualsiasi istruzione SQL può essere digitata direttamente nel foglio di lavoro SQL o incollata da un altro documento, pagina Web, e-mail, ecc.
Al foglio di lavoro SQL viene assegnato un nome file predefinito come orcl_localhost.sql
Questo file può essere salvato in qualsiasi cartella locale del PC. Il salvataggio di questo file è un ottimo modo per tenere traccia della cronologia delle istruzioni SQL mentre le scrivi e le riscrivi.
Per aprire un file di script SQL esistente, apri il menu File e seleziona Apri. Passare alla cartella con il file di script SQL, evidenziarlo e fare clic sul pulsante Apri.
Esportazione di dati Oracle con SQL Developer
SQL Developer ha una funzionalità che semplifica l'esportazione dei dati da una tabella o vista Oracle. Esistono molti modi diversi per esportare i dati da Oracle a seconda delle capacità del database di destinazione o degli strumenti dati. Alcuni esempi comuni di esportazione dei dati includono:
- File di istruzioni SQL Data Definition Language e SQL INSERT utilizzato per ricreare la tabella con i dati in un altro database.
- File e script Oracle SQL Loader che possono essere utilizzati per importare i dati in un altro database o schema Oracle.
- File di valori separati da virgola (.csv) che può essere importato da molti strumenti software, database, ecc.
- File Microsoft Excel
- File XML (eXtensible Markup Language) che può essere importato in diversi strumenti software
- File HTML (HyperText Markup Language) che può essere visualizzato su una pagina web
- File di testo semplice con spaziatura fissa o che utilizza qualche altro delimitatore che può essere importato da molti strumenti software e database diversi.
Questo esempio presuppone che tu abbia almeno una tabella o una vista con dati nello schema (connessione) che possono essere esportati. Se non hai nulla nel tuo schema, crea una tabella di base e aggiungi alcuni dati usando le istruzioni SQL seguenti:
-- Create a simple Employee table CREATE TABLE employee ( employee_id INTEGER NOT NULL, first_name VARCHAR2(35), last_name VARCHAR2(65), salary NUMBER(12,2), department_number INTEGER ); -- Add three new records to the employee table INSERT INTO employee VALUES (101, 'Joe', 'Smith', 47000.00, 1); INSERT INTO employee VALUES (102, 'Alice', 'Jones, 49000.00, 2); INSERT INTO employee VALUES (103, 'Greg', 'Brown', 42500.00, 1, 2);
Per iniziare, apri la struttura di navigazione nell'area Connessioni a sinistra della schermata SQL Developer. Sotto il nome della connessione verranno elencate le Tabelle, le Viste, le Viste di Edizione, gli Indici, ecc. Apri le Tabelle e Viste anche le categorie.
Per questo esempio, verrà esportata la tabella EMPLOYEE.
Fare clic con il pulsante destro del mouse sulla tabella DIPENDENTE e selezionare la voce di menu Esporta... come mostrato di seguito.
Verrà visualizzata una breve procedura guidata di esportazione.
Le impostazioni predefinite per l'esportazione di una tabella Oracle
Esistono molti modi diversi per esportare i dati da Oracle a seconda delle capacità del database di destinazione o degli strumenti dati. Per questo esempio, la tabella EMPLOYEE verrà esportata in un foglio di calcolo Microsoft Excel.
Quando si esporta in un file CSV o in un foglio di calcolo, non è necessario includere il Data Definition Language (DDL) che specifica la struttura della tabella o della vista. Quindi, per questo esempio, rimuovi la casella di controllo accanto a Esporta DDL .
In Esporta dati sezione, cambia il Formato: a Excel 2003+ ( xlsx )
Questa impostazione di formato utilizzerà il formato file più recente di Excel che può contenere fino a un milione di righe. Per la compatibilità con le versioni precedenti di Excel puoi invece selezionare Excel '95 – 2003 (xls) come Formato.
Assegna un nome al nuovo foglio di lavoro nella casella di testo accanto a Nome foglio di lavoro dati: richiesta.
Se desideri includere il testo dell'istruzione SQL utilizzata per estrarre i dati da Oracle, seleziona la casella accanto a Query Worksheet Name e quindi assegna un nuovo nome per il foglio di lavoro di Excel in cui verrà visualizzata la sintassi SQL (per questo esempio, abbiamo deciso di non includere il codice SQL).
L'ultima sezione specifica come i dati devono essere archiviati in un file o in un insieme di file. Per questo esempio, i dati verranno esportati in un unico file. Il nome del file viene quindi fornito nella casella di testo accanto a File: richiesta. Utilizzare il pulsante Sfoglia... per individuare una cartella (directory) con spazio libero su disco sufficiente. Quindi aggiungi il nome del file al percorso.
Una volta impostati tutti questi elementi (come mostrato di seguito), fai clic sul pulsante Avanti>.
La schermata successiva offre due opportunità per filtrare le colonne e/o le righe sui dati da esportare.
Per impostazione predefinita, verranno esportate tutte le colonne e tutte le righe. Per selezionare colonne specifiche, fai clic sullo spazio accanto alla tabella sotto le Colonne intestazione. Quindi fare clic sull'icona della matita per modificare. Apparirà una nuova finestra con dei segni di spunta accanto alle colonne che devono essere incluse nell'esportazione dei dati. Per questo esempio, tutte le colonne verranno esportate.
Fare clic su OK per chiudere la finestra Colonne dati.
Per filtrare le righe da esportare, è possibile aggiungere una clausola WHERE. Fare clic nello spazio sotto l'intestazione Object Where, quindi fare clic sull'icona a forma di matita per visualizzare l'editor Where.
Aggiungi eventuali condizioni (come numero_dipartimento =1) necessarie. Per questo esempio, non sono state aggiunte condizioni Where poiché vorremmo che tutti i dati fossero esportati. Fare clic sul pulsante OK per chiudere la finestra Dati in cui è stata completata.
Fare clic sul pulsante Avanti> per accedere alla schermata Riepilogo esportazione. In questa schermata viene specificato un riepilogo di tutte le opzioni di esportazione.
Se una delle opzioni non è impostata correttamente, usa il pulsante
Se tutte le opzioni di esportazione sembrano corrette, fai clic sul pulsante Fine per iniziare il processo di esportazione.
Se ricevi errori, assicurati di aver specificato una cartella di destinazione che esiste effettivamente (non copiare semplicemente alla cieca ciò che ho in questo tutorial). Assicurati anche che il file di destinazione non sia già aperto da Excel, ad esempio.
Utilizzare Windows Explorer per accedere alla cartella per visualizzare il nuovo file esportato. Ad esempio:
Apri il file Excel per visualizzare il contenuto:
Prima di esportare nuovamente i dati, assicurati di chiudere il file Excel.
SQL Developer ha una funzionalità che semplifica l'importazione di dati da un'ampia gamma di origini dati in Oracle. Esistono molti modi diversi per importare i dati in Oracle a seconda dell'origine dei dati. Alcuni formati di dati comuni che SQL Developer può importare includono:
Questo esempio presuppone che tu abbia una connessione a un database Oracle effettuata tramite SQL Developer.
Il file da importare sarà il file customer_export.csv collegato qui. I dati sono simili ai seguenti (319 righe con 21 colonne):
Per iniziare, apri la struttura di navigazione nell'area Connessioni a sinistra della schermata SQL Developer. Fai clic con il pulsante destro del mouse sulle Tabelle voce e selezionare la voce di menu Import Data... dal menu a comparsa.
A questo punto, le versioni precedenti di SQL Developer (precedenti alla 4.1.3) visualizzeranno una finestra di dialogo per la selezione dei file in cui è possibile selezionare il file da importare. Le versioni più recenti di SQL Developer (4.1.3 e successive) presenteranno il primo passaggio dell'Importazione guidata dati come mostrato di seguito.
Per lo sviluppatore SQL più recente, fai clic sul pulsante Browser per visualizzare la finestra di dialogo Selezione file per selezionare il tuo file.
Passare alla cartella in cui si trova il file e selezionarlo. Tieni presente che il tipo di file è stato impostato per filtrare i file Excel, i file CSV e alcune altre varianti dei file di testo.
Fare clic sul pulsante Apri per avviare l'Importazione guidata dati.
Il primo passaggio dell'Importazione guidata dati fornisce un'anteprima dei dati da importare. Per questo esempio, il file CSV ha una riga di intestazioni che l'importazione guidata utilizzerà per creare i nomi delle variabili. Ci sono opzioni aggiuntive in questo passaggio della procedura guidata per saltare un certo numero di righe all'inizio (0 in questo esempio), selezionare la formattazione (csv in questo esempio), la codifica dei caratteri, i simboli di virgolette usati per racchiudere testo o stringhe e linea finale/terminatore. Nella maggior parte dei casi queste impostazioni possono essere lasciate ai valori predefiniti.
Alcune modifiche che possono essere utili in determinate situazioni includono:
Se tutte le impostazioni sembrano corrette e i dati visualizzati in anteprima sembrano buoni, fai clic sul pulsante Avanti> per passare al passaggio successivo.
Importazione di dati con SQL Developer
Iniziare con l'importazione dei dati
Anteprima dei dati da importare e conferma delle impostazioni
Scelta del metodo di importazione
Il passaggio successivo della procedura guidata consiste nello specificare il metodo di importazione. Sono disponibili diversi metodi di importazione:
- Inserisci:inserisci direttamente i dati in una tabella nuova o esistente.
- Inserisci script:crea un file di script SQL che include tutte le istruzioni DDL e INSERT necessarie per caricare i dati in un database. Questo script può essere eseguito immediatamente o spostato su un'altra connessione al database ed eseguito lì.
- Tabella esterna:imposta una struttura di tabella esterna all'interno di Oracle in cui la tabella viene visualizzata nel dizionario dei dati ma i dati vengono mantenuti in un file esterno.
- Utility SQL Loader:scrivi lo script SQL Loader e i comandi per importare i dati in Oracle.
Per questo esempio, Inserisci verrà utilizzato in modo che i dati vengano inseriti direttamente in una nuova tabella.
Fornisci un nome per la tabella. Se c'è un motivo per limitare le righe da importare, controlla Importa limite righe casella e specificare il numero di righe. Ad esempio, se il tuo file di dati ha milioni di righe ma sei solo interessato a sapere che aspetto hanno una parte dei dati, puoi limitare il numero di righe importate. In questo esempio verranno importate tutte le righe.
Fare clic sul pulsante Avanti> per passare al passaggio successivo.
Seleziona le colonne da importare
Il passaggio 3 della procedura guidata consiste nel selezionare le colonne da importare. Evidenzia eventuali colonne nelle colonne disponibili finestra e fai clic sulla freccia a destra per portarli alle Colonne selezionate finestra. In questo esempio, verranno importate tutte le colonne.
Fare clic sul pulsante Avanti> per passare al passaggio successivo.
Assegnazione dei tipi di dati a ciascuna colonna
Il passaggio 4 della procedura guidata ci consente di definire i tipi di dati e le dimensioni per le colonne da creare nella nuova tabella di dati. Questo è un passaggio molto critico! Se viene selezionato il tipo di dati errato o se un tipo di dati non dispone di spazio sufficiente per contenere i dati in entrata, l'importazione avrà esito negativo.
Le versioni più recenti di SQL Developer mostreranno un'anteprima dei dati per ogni colonna quando viene selezionata:
Alcuni problemi comuni riscontrati includono:
- Non fornisce spazio sufficiente in una colonna VARACHAR per contenere il valore di stringa/testo più grande.
- Utilizzo di un tipo di dati NUMBER su una colonna quando nei dati sono presenti alcuni caratteri di testo.
- Utilizzo di un formato di data o ora errato durante l'importazione di date e orari.
Visita ciascuna delle colonne dei dati di origine cliccando su di essi uno alla volta. Apporta modifiche ai tipi di dati man mano che procedi. Per questo esempio, vengono apportate le seguenti modifiche:
- CUSTOMER_ID cambia in INTEGER Data Type e rimuovi la casella di controllo per Nullable
- CUST_FIRST_NAME usa VARCHAR2 con una dimensione di 30
- CUST_LAST_NAME utilizza VARCHAR2 con dimensione 60
- STREET_ADDRESS usa VARCHAR2 con dimensione 65
- POST_CODE usa VARCHAR2 con dimensione 20
- CITY usa VARCHAR2 con dimensione 35
- STATE_PROVINCE usa VARCHAR2 con dimensione 6
- COUNTRY_ID utilizza VARCHAR2 con dimensione 4
- COUNTRY_NAME utilizza VARCHAR2 con dimensione 60
- REGION_ID utilizza VARCHAR2 con dimensione 2
- NLS_LANGUAGE usa VARCHAR2 con dimensione 6
- NLS_TERRITORY usa VARCHAR2 con dimensione 30
- CREDIT_LIMIT utilizza NUMBER con Dimensione/Precisione 10 e Scala 0
- CUST_EMAIL usa VARCHAR2 con dimensione 60
- PRIMARY_PHONE_NUMBER utilizza VARCHAR2 con dimensione 30
- PHONE_NUMBER_2 utilizza VARCHAR2 con dimensione 30
- ACCOUNT_MGR_ID utilizza VARCHAR2 con dimensione 6
- LOCATION_GTYPE usa INTEGER
- LOCATION_SRID usa INTEGER
- LOCATION_X utilizza NUMBER con Dimensione/Precisione 14 e Scala 6
- LOCATION_Y utilizza NUMBER con Dimensione/Precisione 14 e Scala 6
Fare clic sul pulsante Avanti> per passare al passaggio successivo.
Verifica i parametri di importazione (sviluppatore SQL precedente)
Per le versioni precedenti (precedenti alla 4.1.3) di SQL Developer, l'ultimo passaggio dell'Importazione guidata dati offre la possibilità di verificare che i parametri e le impostazioni dei dati consentano l'analisi del file di dati. Questa schermata è mostrata di seguito:
Fare clic sul pulsante Verifica per verificare che tutte le impostazioni funzionino correttamente. I risultati del processo di verifica sono riportati di seguito:
In caso di problemi, utilizzare il
Le versioni più recenti di SQL Developer (4.1.3 e successive) hanno una schermata finale leggermente diversa. A questo punto le impostazioni sono già state verificate e quindi viene visualizzata una schermata Riepilogo. Il pulsante Salva stato nell'angolo in alto a destra consente di salvare tutte le impostazioni di importazione in un file. Questo file di impostazioni può essere caricato alla successiva esecuzione dell'Importazione guidata dati.
Per questo esempio, se si utilizza la versione più recente di SQL Developer, fare clic sul pulsante Salva stato e salvare le impostazioni in un file denominato:oracle_sqldev_import_customers.
In entrambi i casi (versione precedente o successiva di SQL Developer) per avviare l'importazione dei dati, fare clic sul pulsante Fine. Una volta completata l'importazione, verrà visualizzata una finestra di dialogo. Verranno visualizzati eventuali errori riscontrati durante l'importazione.
Torna a SQL Developer e visualizza la struttura della tabella importata.
Quindi rivedi i dati (fai clic sulla scheda Dati) per assicurarti che i valori dei dati siano stati importati correttamente.
Salva i parametri di importazione (versioni più recenti di SQL Developer)
Esecuzione dell'importazione
Per le versioni più recenti di SQL Developer, i file delle impostazioni di importazione salvati possono essere importati nel primo passaggio dell'Importazione guidata dati per eseguire nuovamente o modificare le impostazioni di importazione prima di eseguire nuovamente l'importazione dei dati.