İçeriğe geç

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

JSON 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
jsonpedidos_2024.jsonÖrnek dosya, 771 bayt
Veritabanınız

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

Göster
pedidos_2024.json dosyasının ilk satırları, her düzeltme işaretli
Satır
2000481Peña Muñoz2024-02-03T10:15:00Z1234.5true
3000482José Ángel Ruiz2024-02-15T16:40:00Z99.9falseEntrega en la tarde
4000483Zoë Ortíz2024-02-29T09:05:00Z12true
5000484Ñuño Castañeda2024-03-11T13:30:00Z980.75síFactura con "RFC"
-- Written by IntoSQL for Oracle.

SET DEFINE OFF

CREATE TABLE pedidos_2024 (
    pedido VARCHAR2(8 CHAR) NOT NULL,
    cliente VARCHAR2(16 CHAR) NOT NULL,
    fecha TIMESTAMP WITH TIME ZONE NOT NULL,
    total NUMBER(6,2) NOT NULL,
    pagado NUMBER(1) NOT NULL,
    notas VARCHAR2(32 CHAR)
);

INSERT ALL
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000481', 'Peña Muñoz', TIMESTAMP '2024-02-03 10:15:00 +00:00', 1234.5, 1, NULL)
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000482', 'José Ángel Ruiz', TIMESTAMP '2024-02-15 16:40:00 +00:00', 99.9, 0, 'Entrega en la tarde')
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000483', 'Zoë Ortíz', TIMESTAMP '2024-02-29 09:05:00 +00:00', 12, 1, NULL)
    INTO pedidos_2024 (pedido, cliente, fecha, total, pagado, notas) VALUES ('000484', 'Ñuño Castañeda', TIMESTAMP '2024-03-11 13:30:00 +00:00', 980.75, 1, 'Factura con "RFC"')
SELECT 1 FROM DUAL;

COMMIT;

Düzeltmeler

  1. "pedido" içindeki baştaki sıfırlar korundu: 000481, 000481 olarak kalır ve metin olarak saklanır.
  2. "pagado" evet ve hayır sözcükleri içeriyor (sí); boolean olarak saklandı.

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

Diğer örnekler:

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

Yukarıdaki örnek pedidos_2024.json, 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
pedido000481pedidoVARCHAR2(8 CHAR)'000481'
clientePeña MuñozclienteVARCHAR2(16 CHAR)'Peña Muñoz'
fecha2024-02-03T10:15:00ZfechaTIMESTAMP WITH TIME ZONETIMESTAMP '2024-02-03 10:15:00 +00:00'
total1234.5totalNUMBER(6,2)1234.5
pagadotruepagadoNUMBER(1)1
notas-notasVARCHAR2(32 CHAR)NULL

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 @pedidos_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.

JSON dosyaları ve Oracle hakkında bilmeniz gerekenler

IntoSQL'in JSON dosyalarında okudukları

  • Dosya bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON) olabilir.
  • Her anahtar bir sütun olur. Bir değerin içindeki nesneler ve diziler JSON metni olarak korunur.
  • Sayılar basamaklarını aynen korur, ISO 8601 tarihleri ise tarih veya zaman damgası olur.

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

JSON 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ı

JSON 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.

JSON dosyası hangi yapıda olmalı?

Bir nesne dizisi, bu diziyi data gibi bir anahtar altında tutan bir nesne veya satır başına bir nesne (NDJSON). Her anahtar bir sütun olur.

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. 000481 gibi bir kod metin olarak kalır; Oracle onu VARCHAR2(8 CHAR) olarak saklar ve betik onu '000481' 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.

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

Satır başına bir nesne içeren NDJSON akış halinde okunur, bu yüzden tarayıcıda birkaç gigabaytlık dosyalar çalışır. Bir JSON belgesi 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 dosyayı alır.