2009-10-30 13 views
30

L'unica cosa che non ho uno strumento automatico per quando si lavora con Oracle è un programma che può creare script INSERT INTO.Generazione di sql insert in per Oracle

Non ne ho disperatamente bisogno quindi non ho intenzione di spendere soldi per questo. Mi chiedo solo se c'è qualcosa che può essere utilizzato per generare script INSERT INTO dati un database esistente senza spendere un sacco di soldi.

Ho cercato attraverso Oracle senza fortuna nel trovare una tale funzionalità.

Esiste in PL/SQL Developer, ma errori per campi BLOB.

+1

Non è possibile utilizzare SQL * Loader? (Lo so, è un po 'più difficile da configurare, ma almeno puoi creare una "skin" per ogni tabella e poi scaricare i contenuti nel tuo file) – davek

risposta

0

Se è necessario caricare molti dati in tabelle su base regolare, controllare Caricatore SQL o tabelle esterne. Dovrebbe essere molto più veloce dei singoli inserti.

-2

È inoltre possibile utilizzare MyGeneration (strumento gratuito) per scrivere gli script creati in SQL. È disponibile uno script "insert into" per SQL Server incluso in MyGeneration, che può essere facilmente modificato per l'esecuzione in Oracle.

31

SQL Developer gratuito di Oracle farà questo:

http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html

Basta trovare il vostro tavolo, fare clic destro su di esso e scegliere Esporta Data-> Inserisci

Questo vi darà un file con le tue dichiarazioni di inserimento. È anche possibile esportare i dati nel formato di Loader SQL.

+7

Allo stesso modo potresti provare a eseguire (con F5) la versione più sexy del sopra in Sql Developer: SELECT/* insert */* FROM your_table; – gerodim

1

Si potrebbe eseguire qualcosa di simile nel database:

select "insert into targettable(field1, field2, ...) values(" || field1 || ", " || field2 || ... || ");" 
from targettable; 

qualcosa di più sofisticato è here.

-1
  1. click del tasto sinistro nometabella Tabelle nel riquadro sinistro.
  2. Fare clic sulla scheda Dati. qui vedrai i dati presenti all'interno della scheda.
  3. Selezionare i dati per i quali è necessario creare query di inserimento.
  4. Fare clic con il tasto destro del mouse sui dati e fare clic su Esporta.
  5. Seleziona il formato come "inserisci"
  6. Attendi qualche secondo e lo script sql è pronto.
1

Sono stato alla ricerca di una soluzione per questo e l'ho trovato oggi. Ecco come puoi farlo.

  1. Aprire Oracle SQL Developer Query Builder

  2. Eseguire la query

  3. Fare clic destro sul set di risultati e l'esportazione

    http://i.stack.imgur.com/lJp9P.png

+0

Mentre funziona, obbliga la query a essere eseguita due volte. La prima volta quando si mostrano i risultati sullo schermo, poi di nuovo quando si esporta nel file. Non è male per i tavolini, ma è terribile per quelli grandi. –

1

Se si dispone di un vuoto tabella il metodo di esportazione non funzionerà. Come soluzione.Ho usato la vista tabella di Oracle SQL Developer. e fatto clic su Colonne. Ordinato da Nullable quindi NO era in cima. E quindi selezionato questi valori non annullabili usando shift + select per l'intervallo.

Questo mi ha permesso di fare un inserto base. In modo che l'esportazione potrebbe preparare un corretto inserimento di tutte le colonne.

15

È possibile farlo in PL/SQL Developer v10.
1. Fare clic sulla tabella per cui si desidera generare lo script.
2. Fare clic su Esporta dati.
3. Controllare se la tabella è selezionata per la quale si desidera esportare i dati.
4. Fare clic sulla scheda Inserti SQL.
5. Aggiungi la clausola where se non è necessaria l'intera tabella.
6. Selezionare il file in cui si trova lo script SQL.
7. Fare clic su Esporta.
enter image description here

4

Utilizzare questa:

Usage:

select fn_gen_inserts('select * from tablename', 'p_new_owner_name', 'p_new_table_name') 
from dual; 

dove:

p_sql   – dynamic query which will be used to export metadata rows 
p_new_owner_name – owner name which will be used for generated INSERT 
p_new_table_name – table name which will be used for generated INSERT 

p_sql in questo campione è 'select * from nometabella'

È possibile trovare il codice fonte originale qui:

Here is another script con un'idea simile, che genera inserto utilizzabile singolarmente istruzioni invece di un blocco SQL, ma supporta un numero inferiore di tipi di dati.

+0

Leggete [Come offrire librerie open source personali?] (// meta.stackexchange.com/q/229085), e ** rendete esplicito che questo è il vostro progetto **. – robinCTS