Keresés

Részletes keresés

givons2 Creative Commons License 2016.01.20 0 0 5508

Bocs ez nem neked lett szánva.

Jó a példád !

Előzmény: givons2 (5507)
givons2 Creative Commons License 2016.01.20 0 0 5507

Az oracle kliens tartalmazza az sqlldr-t.

Van a gépeden olyan ?

Ha nincs, tegyél fel egyet.

Előzmény: rum-cájsz (5506)
rum-cájsz Creative Commons License 2016.01.20 0 0 5506

A szerveren is indíthatod, vagy egy kliensen is, ami eléri az adatbázist. De kliensen kell hozzá az SQL Utility nevű dolog, az tartalmazza a loadert.

Ahogy a kiterjesztésből kiderül, én egy windows kliensen próbáltam ki ezt.

Előzmény: F1DO (5505)
F1DO Creative Commons License 2016.01.20 0 0 5505

Köszönöm a segítséget.

Egy dolog nem tiszta még: 

Az SQL * Loader parancssori indítófile-ját (.bat) hol kell elindítani? illetve a teszt.log file hol fog létrejönni?

Az Oracle serveren?

 

Merthogy serverre csatlakozás nélkül kellene mindez.. (windows desktop-ról futtatva)

Előzmény: rum-cájsz (5504)
rum-cájsz Creative Commons License 2016.01.20 0 1 5504

Nem igazán világos, hogy mire gondolsz importáló package alatt. A loader maga az importáló program.

Csináltam neked egy mintát:

http://pastebin.com/xGciDsDC

 

Négy dolog kell neked, ez mind benne van, csak a felhasználót kell megadnod a bat és control fájlokban:

- maga a csv fájl

- egy control fájl, ami a betöltési szabályt tartalmazza

- egy parancssori indító

- egy oracle tábla

 

Előzmény: F1DO (5501)
rum-cájsz Creative Commons License 2016.01.20 0 0 5503

Persze, a loader teljesen jól automatizálható.

Egy cron bejegyzésbe beteszel egy fájlfigyelőt, ami ha észrevesz egy új csv fájlt egy megadott helyen, akkor elindítja a loadert, és utána archivál.

Én ezt sima bash szkripttel szoktam megoldani, de biztos megoldható más nyelven is.

Előzmény: F1DO (5500)
F1DO Creative Commons License 2016.01.20 0 0 5502

(nem a táblából futtatja a query-t hanem arra egy tetszőlegesen megadott query-t/select-et)

F1DO Creative Commons License 2016.01.20 0 0 5501

Illetve ami még eszembe jut esetleg készen meglévő, importáló package használata.. 

 

(a másik 'oldala' megvan ha kell valakinek, azaz oracle táblából query-t futtató, annak eredményét xls-be kiexportáló + e-mailben a táblázatot adott címekre elküldő verzióról tudok/használtam)

 

 

F1DO Creative Commons License 2016.01.20 0 0 5500

Mivel valahogy meg kell oldani a dolgot, a CSV formátum is jó lehet.

 

SQL Loader-t nézzem - ezt lehet ütemezni és meg lehet adni az importálandó CSV-k 'lelőhelyét'?

 

Illetve szükséges még valami hozzá? Gondolok itt pl VB Scriptekre amikkel file-okat lehet mozgatni, nem oracle-ben zajló műveleteket futtatni

NevemTeve Creative Commons License 2016.01.20 0 0 5499

(Mármint az xls-t megnyitni ODBC-vel? Szerintem, ha működik is, tíz nagyságrenddel gyorsabban kapsz eredményt a lentebb írt módszerrel.)

Előzmény: F1DO (5494)
rum-cájsz Creative Commons License 2016.01.20 0 0 5498

ODBC-vel is megoldható, minimális VB progival, csak kérdés, hogy megéri-e a szevedés, amikor ott van a loader.

Előzmény: edesviz (5497)
edesviz Creative Commons License 2016.01.20 0 0 5497

Ha jól emlékszem haverjaim pearl programmal oldották meg. Perl tud excelt adat tömbbe olvasni, és tud cikkklusban sql insertet kiadni.

Előzmény: F1DO (5494)
NevemTeve Creative Commons License 2016.01.19 0 0 5496

Jaja, +1 az exportra text/csv formátumba, az xls[x] nem emberi (vagy gépi) fogyasztásra való. És különben is verziónként változik.

Előzmény: F1DO (5494)
rum-cájsz Creative Commons License 2016.01.19 0 0 5495

A csv nem lehet megoldás? Azt jól tudja kezelni az Importer.

Előzmény: F1DO (5494)
F1DO Creative Commons License 2016.01.19 0 0 5494

Sziasztok!

 

Excel táblázatok automatizált oracle adattáblába importálásával foglalkozott már valaki?

(pl automatikusan, paraméterezve meghívható a PL/SQL developer odbc importere?)

NevemTeve Creative Commons License 2015.12.26 0 0 5493
Előzmény: NevemTeve (5474)
halaloszto Creative Commons License 2015.12.16 0 0 5492

az a kérdés hogy egyszer kell vagy sokszor. a substring search az magában szívás. a többi, mint a coalesce meg upper az megoldható function based index vagy function based calculated column használatával. 

 

ha sokszor kell ezt futtatni, akkor kell csinálni spéci indexet a substring search-höz. vagy oracle context-el, vagy kézzel.

 

Vajk

Előzmény: tanárnéni kedvence (5491)
tanárnéni kedvence Creative Commons License 2015.12.16 0 0 5491

Ez így Descartes-összekapcsolás, ami sosem lesz hatékony.  Nem igazán tűnik SQL-feladatnak. Hogy érdemes-e ideiglenes táblát használni, vagy megcsinálja magától az adatbázis, az ennyi információ alapján nem mondható meg. Létezik olyan, hogy Oracle Text, ami talán segíthet, de ahhoz egyáltalán nem értek.

Előzmény: brioska (5489)
brioska Creative Commons License 2015.12.16 0 0 5490

köszi a választ, jelenleg is hasonló a nyerő ~18 perccel

Előzmény: dorog.zultan (5487)
brioska Creative Commons License 2015.12.16 0 0 5489

Szerepelnek más táblák/ feltételek is, ettől lett szűkített a 2 halmaz. Ezek hamar összeállnak. 

De sajnos a 2 rész közt összesen ennyi a kapcsolat, amit írtam. 

És tudom, hogy mindenképp baromi lassú, de nem mindegy, hogy 20 perc, vagy órák.

A kérdés arra vonatkozott, hogyan állnátok neki, milyen függvény, módszer jöhet még szóba a LIKE / INSTR / ideiglenes táblákon kívül. 

Előzmény: tanárnéni kedvence (5488)
tanárnéni kedvence Creative Commons License 2015.12.15 0 0 5488

Nem tudjuk, hogy full table scan-e, mert már "leszűkített". Meg mire vannak kapcsolva a táblák? Vagy Descartes-szorzat? Szóval eléggé "éljél 50-et" a kérdés.

Előzmény: NevemTeve (5486)
dorog.zultan Creative Commons License 2015.12.15 0 0 5487

Szia, én biztosan ideiglenes táblát használnék,
plusz a formázásokon (pl.: upper) az insertben túl lennék

Előzmény: brioska (5485)
NevemTeve Creative Commons License 2015.12.15 0 0 5486

Mitől lenne gyors egy full-table-scan-es stringkeresés?

Előzmény: brioska (5485)
brioska Creative Commons License 2015.12.15 0 0 5485

Sziasztok, szerintetek mi ad leggyorsabb eredményt:

 

Adott 2 tábla, t1, t2 tízezres nagyságrendű (leszűkített) sorral, egyébként százezres nagyságrend.

 

Azok kellenek, ahol UPPER(COALESCE(t1.nev1, t1.nev2)) -ben szerepel UPPER(t2.nev1) , mint rész string.

Közvetlen INSTR és LIKE elég khmmm lassú lett.

 

Valami javaslat? Ideiglenes táblák + index esetleg? Bár ilyenre indexet?

 

ez nem az én nevem Creative Commons License 2015.12.11 0 0 5484

Sorry, ezt elnéztem... nem egyedi eset. A szemem finoman szólva nem tökéletes... :(

 

Előzmény: dorog.zultan (5483)
dorog.zultan Creative Commons License 2015.12.11 0 0 5483

Ahogy írtam is:  "nem is azt szeretném, hogy a program kitalálja " a kódolást, hanem csak konvertálja egyik CS-ből a másikba betöltés közben.

A kódolás megállapítása a küldő megkérdezésével :) vagy ha ez nem járható út, notepad++ segítségével sikerült.

Köszi neked is!

Előzmény: ez nem az én nevem (5479)
dorog.zultan Creative Commons License 2015.12.11 0 0 5482

Sikerült megoldani a konverziós problémát a linkelt oldalad és a notepad++ segítségével.

Köszönöm!

 

Előzmény: NevemTeve (5478)
ez nem az én nevem Creative Commons License 2015.12.10 0 0 5481

O.K., de ettől még ugyanott tartunk: éles feldolgozó programot nem építenék arra, hogy sikerül-e eltalálni a kódolást.

Amíg egy notepad++ kategóriájú programnál ez nem jelent gondot, addig egy a feltételezhető feladat esetében elég komoly gubancot okozhat, ha véletlenül mellényúl az algoritmus.

 

Előzmény: NevemTeve (5480)
NevemTeve Creative Commons License 2015.12.10 0 0 5480

Sőt, még én is foglalkoztam az automatikus felismeréssel: http://web.axelero.hu/lzsiga/ekezet.html#S0020

Előzmény: ez nem az én nevem (5479)
ez nem az én nevem Creative Commons License 2015.12.10 0 0 5479

Az kb. lehetetlen. Na jó, nem teljesen, mert pl. állítólag a notepad++ egész jól meg tudja saccolni egy fájl kódolását. De 100% biztonsággal nem lehet.

http://programmers.stackexchange.com/questions/187169/how-to-detect-the-encoding-of-a-file

Feltéve, hogy jól értem, mit is szeretnél és nem vagyok túlzottan lemaradva a technológiával. 

Előzmény: dorog.zultan (5477)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!