Bagaimana cara mengekspor hasil permintaan ke csv di Oracle SQL Developer?

Jawaban:

376

Versi yang saya gunakan

teks alternatif

Perbarui 5 Mei 2012

Jeff Smith telah menunjukkan blogging , apa yang saya percaya adalah metode unggul untuk mendapatkan output CSV dari SQL Developer. Metode Jeff ditunjukkan sebagai Metode 1 di bawah:

Metode 1

Tambahkan komentar /*csv*/ke kueri SQL Anda dan jalankan kueri sebagai skrip (menggunakan F5 atau tombol eksekusi kedua pada bilah alat lembar kerja)

masukkan deskripsi gambar di sini

Itu dia.

Metode 2

Jalankan kueri

teks alternatif

Klik kanan dan pilih bongkar.

Memperbarui. Dalam Sql Developer Versi 3.0.04 bongkar telah diubah untuk mengekspor Terima kasih kepada Janis Peisenieks untuk menunjukkan ini

teks alternatif

Cuplikan layar revisi untuk SQL Developer Versi 3.0.04

masukkan deskripsi gambar di sini

Dari format drop down pilih CSV

teks alternatif

Dan ikuti petunjuk di layar lainnya.

Ian Carpenter
sumber
25
+1. Istilah "Bongkar" tampaknya anti-intuitif bagi saya. Untuk "Memuat" beberapa data berarti memasukkannya ke dalam basis data; Oleh karena itu "Bongkar" seharusnya berarti data dihapus ...
Jeffrey Kemp
8
Dalam versi 3.0.04 opsi ini telah diubah namanya menjadi Ekspor.
Janis Peisenieks
2
Bagus. ps huruf besar /*CSV*/tidak bekerja untuk saya, tetapi huruf kecil /*csv*/tidak. Terima kasih!
Eran Medan
3
Juga perhatikan metode 2 dapat mengalami bug (masih ada di versi saya 3.0.04) di mana ia hanya hang dengan jumlah baris yang besar (sekitar 3K baris atau lebih). Saya menggunakan SQLPLUS jadul ini karena saya tidak melihat metode 1 di atas terlebih dahulu, tetapi beberapa mungkin menyukai ini: {code} SET UNDERLINE OFF SET COLSEP ',' SET LINES 20000 PAGES 20000 SET FEEDBACK off - opsional SET HEADING off Spool C: \ Export \ EMP.csv - Sekarang kueri SELECT * FROM EMP; OFF Spool
Jim P
1
@topr Gunakan metode 1, lalu pilih semua, salin dan tempel ke editor teks dan simpan sebagai csv. Anda bahkan mungkin dapat menempel langsung ke Excel, tetapi saya tidak yakin tentang itu.
Travis
45

Tidak persis "mengekspor," tetapi Anda dapat memilih baris (atau Ctrl- Auntuk memilih semuanya) di kisi yang ingin Anda ekspor, lalu salin dengan Ctrl- C.

Defaultnya adalah tab-delimited. Anda dapat menempelkannya ke Excel atau editor lain dan memanipulasi pembatas semau Anda.

Selain itu, jika Anda menggunakan Ctrl- Shift- Cbukan Ctrl- C, Anda juga akan menyalin tajuk kolom.

BQ.
sumber
5
luar biasa, saya mencari secara khusus tentang cara menyalin tajuk. Terima kasih!
mishkin
3
Satu-satunya masalah, jika Anda memiliki banyak baris, ini berarti harus melakukan kueri seluruh dataset lagi. dan jika ini adalah permintaan yang berjalan lama, ini berarti Anda menunggu banyak untuk halaman pertama, dan kemudian menunggu banyak untuk semua halaman setelah menekan ctrl + A. dengan kata lain, solusi hebat, tetapi hanya berfungsi sebagian besar waktu, dan untuk pertanyaan yang relatif lebih cepat atau lebih kecil.
Eran Medan
Pada hitungan baris panjang, itu akan menghapus barang yang Anda salin! Jangan gunakan ini.
Hash
@ Mark tidak pernah melihat itu terjadi sendiri. Apakah hanya menyimpan 50 baris pertama atau semacamnya? Jika demikian ada preferensi yang terpisah untuk itu. Ini hanya menyalin apa yang saat ini ada di dalam kisi, tetapi jika Anda menggulir ke bagian bawah kisi, SQL Dev akan secara otomatis mengambil lebih banyak baris, jadi saya dapat melihat bagaimana seseorang dapat mengartikannya sebagai bug.
BQ.
1
Saya mencoba melakukan ini pada 43K baris data dan hanya berjalan selamanya - opsi ekspor lebih cepat. Ini luar biasa jika Anda hanya memiliki beberapa baris data.
izikandrw
28

FYI, Anda dapat menggantikan /*csv*/ format lain juga termasuk /*xml*/dan /*html*/. pilih /*xml*/ * from empakan mengembalikan dokumen xml dengan hasil pencarian misalnya. Saya menemukan artikel ini sambil mencari cara mudah untuk mengembalikan xml dari kueri.

Yves Rochon
sumber
4
/ * masukkan * / sangat berguna.
jeremyjjbrown
Kemana file-file itu pergi?
Anomali
Ah sudahlah, saya mengabaikan bagian "run as script", tidak menyadari ini berbeda dari tombol run yang biasa.
Anomali
4

FYI untuk siapa saja yang mengalami masalah, ada bug dalam ekspor cap waktu CSV yang saya hanya menghabiskan beberapa jam bekerja di sekitar. Beberapa bidang yang perlu saya ekspor adalah jenis cap waktu. Tampaknya opsi ekspor CSV bahkan dalam versi saat ini (3.0.04 saat posting ini) gagal meletakkan simbol pengelompokan di sekitar cap waktu. Sangat frustasi karena spasi di cap waktu melanggar impor saya. Solusi terbaik yang saya temukan adalah menulis kueri saya dengan TO_CHAR () pada semua stempel waktu saya, yang menghasilkan output yang benar, meskipun dengan sedikit lebih banyak pekerjaan. Saya harap ini menghemat waktu atau membuat Oracle siap dengan rilis berikutnya.

BoeroBoy
sumber
1
Versi saya 3.0.04 masih memiliki bug di mana ia hanya hang dengan ekspor yang lebih besar (milik saya adalah baris 3K). Perbaikan sederhana saya adalah dengan menggunakan SQLPLUS sebagai gantinya:
Jim P
Dalam kasus saya, Tipe Data Spasial ( docs.oracle.com/cd/B19306_01/appdev.102/b14255/… ) diekspor seperti ini (perhatikan koma) MDSYS.SDO_GEOMETRY(2001,8307,MDSYS.SDO_POINT_TYPE(-122.39096,37.79251,NULL),NULL,NULL)tanpa dibungkus dengan tanda kutip. Dan saya menggunakan SQL dinamis sehingga saya tidak bisa TO_CHAR () kolom ini. Ada saran?
Kacang Merah
Meskipun saya menggunakan Dynamic SQL dan hanya memilih *, (dan saya tidak ingin memodifikasi ini untuk pengecualian untuk kolom SQL tunggal dari tipe data Spasial), mungkin saya bisa mencoba dua hal: 1) Gunakan COLSEP yang berbeda seperti '|', atau 2) Sebelum pernyataan SELECT, tentukan bagaimana kolom ini harus diformat menggunakan docs.oracle.com/cd/B19306_01/server.102/b14357/ch12013.htm
The Red Pea
2

Untuk mengambil ekspor ke sistem lokal Anda dari pengembang sql.

Path : C:\Source_Table_Extract\des_loan_due_dtls_src_boaf.csv

    SPOOL "Path where you want to save the file"
    SELECT /*csv*/ * FROM TABLE_NAME;
Arpan Saini
sumber
1

Ekspor CSV tidak luput dari data Anda. Watch out for string yang berakhir \karena hasilnya \"akan terlihat seperti melarikan diri "dan bukan \. Maka Anda memiliki nomor yang salah "dan seluruh baris Anda rusak.

John
sumber
Itu mungkin bukan bug - Anda dapat memutuskan bagaimana kutipan diloloskan, dan defaultnya adalah melarikan diri dengan karakter kutipan lainnya, bukan backslash. Dalam hal ini, "foo\"string yang dikutip sangat valid.
Ken Williams
Cukup sederhana untuk mengganti setiap kemunculan \ dengan \\, jika Anda mengetahuinya terlebih dahulu. Terima kasih!
jpaugh
Ya, cukup sederhana dan kemungkinan salah untuk sebagian besar alat impor CSV.
Wormbo