İçeriğe geç

Excel dosyalarını Oracle için dönüştürün

Excel dosyanızı bırakın, CREATE TABLE ve INSERT ifadeleri içeren bir Oracle betiği alın. Her sütuna bir tür verilir ve her düzeltme satırı ve sütunuyla listelenir.

Dosyanız
xlsxclientes_2024.xlsxÖrnek dosya, 7 kB
Veritabanınız

4 satır dönüştürüldü, 10 düzeltme, reddedilen yok

Göster
clientes_2024.xlsx dosyasının ilk satırları, her düzeltme işaretli
Satır
500127Peña Muñoz0123403/02/2024sí1.234,50
600128José Ángel0987015/02/2024noN/A
700129Zoë Ortíz4410029/02/2024sí-12,00
800130Ñuño Castañeda0670011/03/2024no980,75
-- Written by IntoSQL for Oracle.

SET DEFINE OFF

CREATE TABLE clientes_2024 (
    no_cliente VARCHAR2(8 CHAR) NOT NULL,
    nombre VARCHAR2(16 CHAR) NOT NULL,
    c_p VARCHAR2(8 CHAR) NOT NULL,
    alta DATE NOT NULL,
    activo NUMBER(1) NOT NULL,
    saldo NUMBER(6,2)
);
COMMENT ON COLUMN clientes_2024.no_cliente IS 'Nº Cliente';
COMMENT ON COLUMN clientes_2024.c_p IS 'C.P.';

INSERT ALL
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00127', 'Peña Muñoz', '01234', DATE '2024-02-03', 1, 1234.50)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00128', 'José Ángel', '09870', DATE '2024-02-15', 0, NULL)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00129', 'Zoë Ortíz', '44100', DATE '2024-02-29', 1, -12.00)
    INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES ('00130', 'Ñuño Castañeda', '06700', DATE '2024-03-11', 0, 980.75)
SELECT 1 FROM DUAL;

COMMIT;

Düzeltmeler

  1. Başlık 4. satırda; üstündeki satırlar dışarıda bırakıldı.
  2. 9. satır ("TOTAL") bir toplam; bu yüzden dışarıda bırakıldı.
  3. "Nº Cliente" sütununun adı artık no_cliente; böylece Oracle onu tırnaksız okur.
  4. "C.P." sütununun adı artık c_p; böylece Oracle onu tırnaksız okur.
  5. "Nº Cliente" içindeki baştaki sıfırlar korundu: 00127, 00127 olarak kalır ve metin olarak saklanır.
  6. "C.P." içindeki baştaki sıfırlar korundu: 01234, 01234 olarak kalır ve metin olarak saklanır.
  7. 15/02/2024 değeri, "Alta" içindeki tarihlerde günün önce geldiğini kanıtlıyor; bu yüzden 03/02/2024, 2024‑02‑03 olarak okunur.
  8. "Activo" evet ve hayır sözcükleri içeriyor (sí, no); boolean olarak saklandı.
  9. "Saldo" içindeki sayılar ondalık virgül kullanıyor: 1.234,50, 1234.50 olarak okunur.
  10. "Saldo" içindeki N/A boş olarak okundu (4 değerden 1).

Dosyan bu bilgisayarda dönüştürülür ve asla yüklenmez.

Diğer örnekler:

Excel dosyasından Oracle için, sütun sütun

Yukarıdaki örnek clientes_2024.xlsx, IntoSQL'in Oracle için yazdığı haliyle: her sütunun dosyada ne tuttuğu, aldığı tür ve ilk değerinin betiğe nasıl yazıldığı.

Dosyadaİlk değerSütunOracle türüBetikte
Nº Cliente00127no_clienteVARCHAR2(8 CHAR)'00127'
NombrePeña MuñoznombreVARCHAR2(16 CHAR)'Peña Muñoz'
C.P.01234c_pVARCHAR2(8 CHAR)'01234'
Alta03/02/2024altaDATEDATE '2024-02-03'
ActivosíactivoNUMBER(1)1
Saldo1.234,50saldoNUMBER(6,2)1234.50

Betiği Oracle veritabanına yükleyin

İndirilen dosya düz bir .sql dosyasıdır. Oracle araçlarıyla çalıştırın.

Terminalden

sqlplus user@//localhost/mydb @clientes_2024.oracle.sql

Betik yerine koyma değişkenlerini kapatır (SET DEFINE OFF), böylece verinizdeki & işareti olduğu gibi kalır.

Bir veritabanı aracından

SQL Developer'da betiği açıp Run Script'i (F5) seçin.

Excel dosyaları ve Oracle hakkında bilmeniz gerekenler

IntoSQL'in Excel dosyalarında okudukları

  • Üstünde başlıklar veya notlar olsa bile başlık satırı bulunur ve sondaki toplam satırı dışarıda bırakılır.
  • Excel seri numarası olarak saklanan tarihler, hem 1900 hem 1904 tarih sisteminde gerçek tarihlere dönüşür.
  • 00127 gibi başında sıfır olan kodlar metin olarak kalır. Bir çalışma kitabında birden fazla sayfa varsa sayfayı siz seçersiniz.

Oracle hakkında bilmeniz gerekenler

  • Evet ve hayır değerleri, 1 veya 0 tutan NUMBER(1) olur; bunu her Oracle sürümü kabul eder.
  • Metin, uzunluğu karakter cinsinden olan VARCHAR2 olur; 4000 baytı aşınca CLOB olur. Oracle boş metni NULL olarak saklar.
  • Satırlar INSERT ALL ile eklenir ve uzun değerler SQL*Plus kabul etsin diye bölünür.

Her değer türü Oracle içinde nasıl saklanır

DeğerOracle
Evet ve hayırNUMBER(1)
Tam sayılarNUMBER(10)
Büyük tam sayılarNUMBER(19)
Ondalık sayılarNUMBER(p,s)
Kayan noktalı sayılarBINARY_DOUBLE
TarihlerDATE
Günün saatleriINTERVAL DAY(0) TO SECOND
Saatli tarihlerTIMESTAMP
Saatli ve saat farkı olan tarihlerTIMESTAMP WITH TIME ZONE
MetinVARCHAR2(n CHAR)CLOB

Excel dosyasından Oracle için sorular

Yanıtınızı bulamadınız mı? İletişim sayfasından bize yazın, bir kişi yanıt verir. İletişim sayfası

Excel dosyasını Oracle için nasıl dönüştürürüm?

Dosyanızı bu sayfanın üstündeki dönüştürücüye bırakın. Başlığı bulur, her değeri okur ve yaptığı her düzeltmeyi listeleyerek Oracle betiğini yazar. Betiği indirip SQL*Plus ile çalıştırın.

Çalışma kitabının hangi sayfası dönüştürülür?

Görünür ilk sayfa. Çalışma kitabında birden fazla sayfa varsa bir Sayfa seçeneği çıkar ve başka birini seçebilirsiniz.

Hangi Oracle türlerini kullanır?

Evet/hayır değerleri NUMBER(1), tam sayılar NUMBER(10), ondalıklar NUMBER(p,s), tarihler DATE, saatli tarihler TIMESTAMP ve metin VARCHAR2(n CHAR) olur. Boyutlar her sütundaki en uzun değere göre belirlenir.

Oracle için baştaki sıfırları korur mu?

Evet. 00127 gibi bir kod metin olarak kalır; Oracle onu VARCHAR2(8 CHAR) olarak saklar ve betik onu '00127' olarak yazar.

Verileri betik olmadan Oracle veritabanına yükleyebilir mi?

Hayır. Betiği indirip SQL*Plus ile çalıştırın. Betiksiz yükleme masaüstü uygulamasından veya komut satırından PostgreSQL, MySQL, MariaDB ve SQLite için çalışır.

Excel dosyası ne kadar büyük olabilir?

Tarayıcıda çalışma kitabı bütün olarak okunur, bu yüzden sınır tarayıcının bu sayfaya verdiği bellektir. Masaüstü uygulaması ve komut satırı her boyutta çalışma kitabını alır; Apple M4'lü bir dizüstü bilgisayarda komut satırı bir milyon satırlık 117 MB'lık bir çalışma kitabını yaklaşık bir saniyede dönüştürür.