abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 21:44 | Nová verze

    Vyšla nová verze XMPP (Jabber) klienta Gajim, která přidává podporu reakcí pomocí emoji (XEP-0444: Message Reactions) a citace zpráv (XEP-0461: Message Replies). Přehled dalších vylepšení je k dispozici na oficiálních stránkách.

    sonicpp | Komentářů: 0
    dnes 15:00 | Nová verze

    Po po téměř roce vývoje od vydání verze 5.38 byla vydána nová stabilní verze 5.40 programovacího jazyka Perl (Wikipedie). Do vývoje se zapojilo 75 vývojářů. Změněno bylo přibližně 160 tisíc řádků v 1 500 souborech. Přehled novinek a změn v podrobném seznamu.

    Ladislav Hagara | Komentářů: 4
    dnes 12:00 | Zajímavý článek

    Uroš Popović popisuje, jak si nastavit Linux na desce jako Raspberry Pi Zero, aby je šlo používat jako USB „flešku“.

    Fluttershy, yay! | Komentářů: 1
    dnes 08:44 | Zajímavý software

    Andreas Kling oznámil, že jelikož už se nevěnuje nezávislému operačnímu systému SerenityOS, ale výhradně jeho webovému prohlížeči Ladybird, přičemž vyvíjí primárně na Linuxu, SerenityOS opustí a Ladybird bude nově samostatný projekt (nový web, repozitář na GitHubu).

    Fluttershy, yay! | Komentářů: 2
    dnes 02:22 | Nová verze

    Po dvou měsících vývoje byla vydána nová verze 0.13.0 programovacího jazyka Zig (GitHub, Wikipedie). Přispělo 73 vývojářů. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    8.6. 17:55 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE.

    Ladislav Hagara | Komentářů: 10
    7.6. 14:55 | IT novinky

    Před 70 lety, 7. června 1954, ve věku 41 let, zemřel Alan Turing, britský matematik, logik, kryptoanalytik a zakladatel moderní informatiky.

    Ladislav Hagara | Komentářů: 24
    7.6. 11:44 | Zajímavý software

    NiceGUI umožňuje používat webový prohlížeč jako frontend pro kód v Pythonu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    7.6. 10:55 | Nová verze

    Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána ve verzi 2024.6. Z novinek lze vypíchnout lepší integraci LLM (OpenAI, Google AI, Ollama) nebo podporu Matter 1.3.

    Ladislav Hagara | Komentářů: 0
    6.6. 20:55 | IT novinky

    IKEA ve Spojeném království hledá zaměstnance do své nové pobočky. Do pobočky v počítačové hře Roblox. Nástupní mzda je 13,15 liber na hodinu.

    Ladislav Hagara | Komentářů: 0
    Rozcestník

    Dotaz: SQL - import csv, rozparsovani a vložení do tabulky

    24.6.2016 12:38 MrMrkev
    SQL - import csv, rozparsovani a vložení do tabulky
    Přečteno: 761×
    Příloha:
    Dobrý den všem, mám problém s vyřešením jednoho prac. úkolu. Díky tomu, že se v tom nepohybuji a je to jen jednorázový úkol, který je potřeba v brzkém čase vyřešit, tak se obracím na Vás. Jedná se o toto: 1.: Vytvořit web. službu (proceduru), která dovolí nahrát soubor ve formátu .csv. („připravené“) 2.: Dále vytvořit další (navazující) proceduru, která po nahrání daného .csv, toto csv rozparsuje (vždy stejná struktura) a vloží do připravené tabulky na serveru. Věřím, že se pro se bude jednat o banalitu. Bohužel se teprve rozkoukávám a rychlé splácání je nutné. Předem Vám děkuji za případnou pomoc, plavu v tom a potřebuji pracovat na jiných věcech. Jedná se mi hlavně o to rozparsování.

    1.: viz. příloha...

    2.: Zde jsem ztracen a nevím, jak tuto proceduru uchopit... Našel jsem si např. toto: https://slobaray.com/2014/05/28/loading-csv-files-into-oracle-tables-using-plsql/ , ale o moc moudřejší nejsem.

    Struktura .csv, vždy bude: ID (varchar2 – díky číselné řadě a písmennému označení); DatumPočátku (date – zde by měla být i kontrola na validnost data); DatumKonce (date) – data prozatím null * možná se ani vyplňovat nebudou; DatumVložení (date – aktuální datum); Poznámka (varchar2). Vše odděleno „;“

    Ještě jednou děkuji za případnou pomoc.

    Odpovědi

    xxxxxx avatar 24.6.2016 13:05 xxxxxx | skóre: 23
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    A co python? To by stačil csv reader, na datum modul time nebo datetime, a na DB asi cx_Oracle (s Oracle zkušenosti nemám, ale vypadá to použitelně). Celý skript by se pak mohl vejít do sta řádků.
    24.6.2016 13:35 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    Tak moc? V PHP je to tak na 10 řádek, v Pythonu by se do toho měl vejít také.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    xxxxxx avatar 24.6.2016 14:15 xxxxxx | skóre: 23
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    Tak tazatel psal ještě o kontrole dat, k tomu nějaké ošetření, co vlastně přečte ze souboru, nějaká try-except konstrukce při připojování k db a ono to nad 10 řádků naroste. Ale jinak souhlas, že ten úplný základ by kolem těch 10 mohl být.
    24.6.2016 14:38 Kit | skóre: 45 | Brno
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    Aha, to bude tím. Jsem zvyklý na to, že si databáze data zvaliduje sama. V Oracle to možná bude jiné.
    Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
    24.6.2016 13:36 MrMrkev
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    Děkuji, zkusím se na to mrknout.
    25.6.2016 07:28 jekub
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky
    Doporucil bych vasi pozornosti external tables (http://docs.oracle.com/cd/B19306_01/server.102/b14215/et_concepts.htm). Pouzivam v praxi k pristupu dokonce i k binarnim datum.
    1.7.2016 01:23 Tomáš
    Rozbalit Rozbalit vše Re: SQL - import csv, rozparsovani a vložení do tabulky

    Oracle dodává nástroj sqlcl. Ten umí nahrávat CSV. Příklad zde. Program sqlcl je napsán v Javě, tak by jej možná šlo přímo použít ve WS.

    Parsovat CSV v PL/SQL bude IMHO hodně zbytečné práce.

    Osobně tyto věci kóduji v Ruby. Vypadalo by to asi takto:

    #!/bin/ruby
    require 'oci8'
    require 'csv'
    con=OCI8.new('user','password','DB')
    cmd=con.parse("insert into MyTable values ( :jedna, :dva, :tri, :ctyri, :pet )" )
    CSV.foreach('file.csv') { |r| cmd.exec(*r) }
    

    Pokud budte plnit něco jiného než stringy,tak je nutné udělat explicitní bind:

    cmd.bind_param(:jedna, r[0], String )
    m=r[1].match /(?<den>\d\d).(?<mesic>\d\d).(?<rok>\d\d\d\d)/
    cmd.bind_param(:dva, OraDate(m[:rok],m[:mesic],m[:den]), OraDate )
    

    nebo udělat přetypování v prepared statementu

    cmd=con.parse("insert into MyTable values ( :jedna, to_date(:dva,'DD.MM.YYYY'), :tri, :ctyri, :pet )" )
    

    Vše nakódováno po paměti bez testování,tak tam budou chybky.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.