Keresés

Részletes keresés

dorog.zultan Creative Commons License 2007.06.27 0 0 2373
Akkor hogy tudnám visszakapni az id-t?
ha insert ... values ... RETURNING ...
akkor működik.
ha insert ... select .... RETURNING ...
akkor nem!
Mit lehetne tenni?

Előzmény: NevemTeve (2372)
NevemTeve Creative Commons License 2007.06.27 0 0 2372
insert into auto_i2 (SOMETHING)
  select SOMETHING from AUTO_INCREMENT where id = 9
  RETURNING id INTO logID;


Kipróbáltam Pro*C-ben, az sem tudja...
Előzmény: dorog.zultan (2371)
dorog.zultan Creative Commons License 2007.06.27 0 0 2371
Sziasztok,

lenne egy kérdésem:
van egy táblám: auto_i2
ehhez szeretnék hozzáfűzni
egy rekordot a AUTO_INCREMENT táblából
úgy hogy a auto_i2 tábklában before insert trigger segítségével képződő
id-t visszakapjam a logID -be.
da sajnos a
ORA-00933: SQL command not properly ended
hibaüzenetet kapom.
az insert kipróbált, működik, ha kihagyom a "RETURNING id INTO logID" -t

insert into auto_i2
(
SOMETHING
)
select
SOMETHING
from AUTO_INCREMENT
where id = 9
RETURNING id INTO logID;
commit;
NevemTeve Creative Commons License 2007.06.27 0 0 2370
Végső esetben irány az Sql*Plus, azzal biztos látod...
Előzmény: Laca0 (2369)
Laca0 Creative Commons License 2007.06.26 0 0 2369
Megvan az a tábla, de csak akkor látom, hogy ha megfelelő userrel vagyok bejelentkezve. Sysként miért nem látom?
Előzmény: Laca0 (2368)
Laca0 Creative Commons License 2007.06.26 0 0 2368
Üdv Mindenkinek!
Oracle 10 Express-el kapcsolatban szeretnék segítséget kérni. Visual Foxpro 7-ből próbálgatom kezelni, de nem túl sok sikerrel.
Sikerült nagynehezen ODBC-n összehozni a kapcsolatot, de a saját driverével nem ment, csak egy utólag letöltött, újabb alverzióssal.
Létrehoztam egy táblát foxproból, amit onnan el is érek, de ha a webes felületén nézem az Oracle-t, ott nem találom a táblák között. Miért nem látom?
Segítségeteket előre is köszönöm!
stopposbácsi Creative Commons License 2007.06.14 0 0 2367
Igen, ráadásul gyakran szokott az lenni, hogy kérnek valamit, majd aztán valami máshoz is kell később a ugyanaz. Na ezért aztán nem is szoktam a helyel törődni, csak hogy letároljak minden olyat, ami esetleg máshoz is kellhet majd.

Ja és köszi a linket, mindjárt áttanulmányozom. :)
Előzmény: tnsnames.ora (2366)
tnsnames.ora Creative Commons License 2007.06.14 0 0 2366
Hát igen, korábban általában mindig az szokott lenni az első kérdésem, hogy OLTP vagy DW a rendszer... DW-nél valóban más a leányzó a fekvése, ahogy te is érzékeltetted... :o)
Előzmény: stopposbácsi (2365)
stopposbácsi Creative Commons License 2007.06.14 0 0 2365
Kicsit akkor elmagyarázom a környezetet. Logikai ugyan az adatbázis, de Adattárház szervezésű. Úgy néz ki a dolog, hogy este a képviselők szépen feltöltik az adataikat az adatbázisba, aztán mi jól áttöltjük az adattárázba. Eleve egy szörnyet kreáltunk sok redundanciával, úgyhogy mégegy tábla ide vagy oda nem számít. Az eljárás az áttöltés része lesz, szóval ha épp az borul meg azt egyrészt látjuk, plusz magától újraindul ha az oracle hibát ad. Viszont ezt a táblát jól össze tudom majd kötni más táblákkal és riportálgathatom az utolsó négy látogatás különböző eladásait, satöbbit nyugisan és gyorsan. Plusz abban is gondolkodnom kell, hogy a BO, amivel riportálunk, alapvetően egyszerű táblák egyszerű összekötéséből ért. Szóval igazából ez a segédtábla máshol is használva lesz, hely meg van. :)
Előzmény: tnsnames.ora (2364)
tnsnames.ora Creative Commons License 2007.06.13 0 0 2364
>Igazából ez csak egy segédtábla lesz, ami alapján megnézem, hogy a különböző látogatásokkor volt-e eladás, vagy készletszámolás.

Na és ez biztos jó ötlet? Önmagában logikai adatbázis-tervezés miatti force-olt redundancia, nem ördögtől való, de...
- Valami módon karban kell tartanod a segédtáblát is (tárolt eljárással), vélhetőleg elég gyakran. Ez is erőforrásigény ám.
- Ha befigyel a tárolt eljárás, akkor minek az inicializáló sql-en gyötörni magatokat (persze érdekes és szép a feladat l'art pour l'art is... ;) Azt fel sem tételezem, hogy a segédtábla kreáló sql-t mindig futtatni akarnátok, amint a bolt,datum páros valamelyike keletkezik/módosul/törlődik /igaz van amikor még akár ez is belefér/.
- _Annyira_ nem nagy nyereség érzésem szerint /mármint a kérdéses származtatott adatok ezen redundáns tárolása/, hogy megérjen egy külön segédtáblát, annak pontos adminisztrációjának nyügeivel.
Előzmény: stopposbácsi (2362)
tnsnames.ora Creative Commons License 2007.06.13 0 0 2363
>>...hogy a látogatások egy mezőben vesszővel elválasztva jelenjenek meg
>szerintem hagyja ez nem nekünk való. :))
Akkor hagyjuk? ;)
Pedig van rá elegáns megoldás, pl.: string aggregálás
http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
Előzmény: stopposbácsi (2362)
stopposbácsi Creative Commons License 2007.06.13 0 0 2362
Hali,

A bolt, dátum egyedi azonosító. Viszont télleg az összes bolt kellene. Igazából ez csak egy segédtábla lesz, ami alapján megnézem, hogy a különböző látogatásokkor volt-e eladás, vagy készletszámolás. Majd aztán jól eldöntöm, hogy hányszor volt disztribúciója az adott terméknek a boltban.

Viszont az egyik komám is kapott egy érdekeset ma. Megintcsak a látogatás táblából, úgy kellene egy adott időszakra levállogatnia a látogatásokat, hogy a látogatások egy mezőben vesszővel elválasztva jelenjenek meg. Én mondtam neki, hogy szerintem hagyja ez nem nekünk való. :)) Mink csak egyszerű alapfokú sql-esek vagyunk, ráadásul autodidakták. Az összes jó kis megoldásotokat, amiket eddig adtatok nekem néha fel sem fogtam. De boldogan fogadtam a vállonveregetéseket, amiket most virtuálisan felajánlom nektek.
Előzmény: tnsnames.ora (2361)
tnsnames.ora Creative Commons License 2007.06.13 0 0 2361
Hát nem tudom.... ;) Lehet, hogy reggel van még... ;)

Szerintem ha csak _egyetlen_ bolt utolsó négy látogatása kell (ahogy tisztességes OLTP-rendszerben valamelyest elvárható), akkor én szűrnék a boltra, csökkenően rendeznék a látogatásra, és venném az első négy rekordot. Valahogy így (nem teszteltem)

SELECT ROWNUM rn, kod, datum
FROM
(
SELECT kod,datum
FROM BOLT b
WHERE kod='szükésges bolt kódja'
ORDER BY datum DESC
)
WHERE rn<=4

Ami meggondolásra váró kérdések:
- Mi van, ha a (kod,datum) nem unique?
- Mi van, ha az _összes_ bolt utolsó négy látogatása kell, SQL-ben?
- Mi van, ha analitikus függvény nélkül kellene? ;) -> ez nem biztos, hogy ostoba felvetés; hiszen pl.: bankoknál az ügyfelek utolsó két tranzakciójának lekérdezése sokmilliós táblákon/equijoinokon, egyrészt bír feladat lenni, másrészt bír elgondolkodtató lenni.
stopposbácsi Creative Commons License 2007.06.12 0 0 2360
Ó, még válogathatok is, köszönöm. De eredményt nem vagyok hajlandó hírdetni. :)
Előzmény: eti. (2359)
eti. Creative Commons License 2007.06.12 0 0 2359
select *
from (
select boltkod, datum, statusz, row_number() over (partition by boltkod order by datum desc) sorszam
from latogatasok
)
where sorszam <= 4
order by boltkod, sorszam
/
Előzmény: stopposbácsi (2356)
stopposbácsi Creative Commons License 2007.06.12 0 0 2358
Sokkal elegánsabb, mint amit én írtam volna, köszönöm. :)
Előzmény: Tomathos (2357)
Tomathos Creative Commons License 2007.06.12 0 0 2357

Nemtom mennyire elegáns :)

 

 

SELECT kod,datum FROM (
SELECT ROWNUM rn,a.kod,a.datum,m FROM (SELECT kod,datum FROM BOLT b ORDER BY kod,datum
)a,(
SELECT kod,MAX(rn) m FROM (SELECT ROWNUM rn,kod,datum FROM (SELECT kod,datum FROM BOLT
ORDER BY kod,datum)) GROUP BY kod
) c WHERE a.kod = c.kod
) WHERE rn > m-4

Előzmény: stopposbácsi (2356)
stopposbácsi Creative Commons License 2007.06.12 0 0 2356
Üdv urak,

Olyan kérdésem lenne, hogy hogyan tudom a legkönnyebben leválogatni egy bolthoz tartozó utolsó négy látogatást?

A tábla tök egyszerű, boltkód, dátum, státusz.

Najó, ha nem is a legkönnyebben, de a legelegánsabban. :)
dorog.zultan Creative Commons License 2007.06.09 0 0 2355
köszönöm, megnézem
Előzmény: lob (2354)
lob Creative Commons License 2007.06.09 0 0 2354
Előzmény: dorog.zultan (2353)
dorog.zultan Creative Commons License 2007.06.09 0 0 2353
Szia
köszönöm, mindkét doc hasznos volt,
de...
Az eredeti kérdés:
"tud valaki redhat ent. alatti 10g és mssql közé MŰKÖDŐ odbc -t?"
mert ezek a technikák jók, csak éppen feltételezik egy odbc jelenlétét a szerveren.
Ez nekem pedig nincs sajnos.

Előzmény: lob (2352)
lob Creative Commons License 2007.06.08 0 0 2352
A 115098.1-es doc id szintén ezt taglalja, csak ux környezetben
Előzmény: dorog.zultan (2351)
dorog.zultan Creative Commons License 2007.06.08 0 0 2351
Köszönöm, megnézem
Előzmény: lob (2350)
lob Creative Commons License 2007.06.08 0 0 2350

A metalink-en (doc id : 114820.1) találsz megoldást, hogy hogyan lehet összekapcsolni oracle és mssql adatbázisokat  linken keresztül.

 

Előzmény: dorog.zultan (2346)
dorog.zultan Creative Commons License 2007.06.04 0 0 2349
"Ha az MsSql rendszer megpusztul mi történik az Oracle-vel?"
Semmi, a lekérdezők nem tudnak lekérdezni míg a másik (tőlünk független)
cég (aki diszponál az MSSQL-es adatbázis felett) ki nem javítja a hibát.
Nem online a frissítés hanem időnként Oracle oldalról ellenőrizzük van-e már új adat.
ha van átvesszük ha nincs akkor nem.
Azt hiszem talán ez lehet a lazán csatolt...
Előzmény: tnsnames.ora (2348)
tnsnames.ora Creative Commons License 2007.06.04 0 0 2348
Az én értelmezésemben ez
- "MSSQL táblát átemelni egy struktúrájában (még mező neveiben is) 100% -ig azonos Oracle táblába." => (tábla-)replikálás heterogén adatbázisok között.
- "Én az ORACLE oldalon állok, a másik oldalt nem tudom semmilyen mértékben sem befolyásolni."=> A távoli MsSql rendszer autonóm, nem piszkálható.
- "Minél kevesebb ODBC igénybevételével." => cél , hogy nincs újabb réteg az architektúrában azaz maradjon csak a két (adatbázis)szerver: ami táblareplikálás esetén akár logikus elvárás is lehet.

Nyitott kérdések:
- Lazán/Nem lazán csatolt rendszerek más szóval online/offline frissítés/szinkronitás kérdése. Ha az MsSql rendszer megpusztul mi történik az Oracle-vel? Meg egyéb szokásos replikálás tervezési kérdés lásd korábbi threadeket, itt a fórumban..
- A GUI-s egyidejű hozzáférés témája esetleg az üzleti logikával megspékelve természetesen egy külön thread....

Nem tudom ki hogy van vele, még mindig sok technikai lehetőség van, és érdemes további tervezési iterációkat tenni az optimális megoldás érdekében.

Előzmény: dorog.zultan (2346)
halaloszto Creative Commons License 2007.06.04 0 0 2347
Nekem jdbc-oracle-val van tapasztalatom, es semmi bajom vele.
Előzmény: dorog.zultan (2345)
dorog.zultan Creative Commons License 2007.06.04 0 0 2346
Feladat:
MSSQL táblát
átemelni egy struktúrájában (még mező neveiben is) 100% -ig azonos Oracle táblába.
Minél kevesebb ODBC igénybevételével.
DE adat nem kerülhet ki 3. állományba se dump se export se semmilyen
más módon még titkosítva sem.
A központi ORACLE adatbázisnak kell "kinyúlkálnia" a külső rendszerekbe,.
amiből csak egy az MSSQL alapú alkalmazás.
Én az ORACLE oldalon állok, a másik oldalt nem tudom semmilyen mértékben sem befolyásolni.
Ők adják a hozzáférést az export táblákhoz, tárolt eljárásokhoz,
én vagy át tudom venni vagy nem (az már az én bajom ha nem).
Szóval erről lenne szó, remélem érthetően leírtam.
Előzmény: halaloszto (2344)
dorog.zultan Creative Commons License 2007.06.04 0 0 2345

Igen a KIÍRÓK SZERINT ez a közvetlen elérés
a text szócskától irtóznak sajnos.
Én ugyanúgy nem értem ahogy Ti sem.

"Ha irok javaban egy programot, ami jdbc-n olvas mssql-bol, es jdbc-n ir oracle-ba, az közvetlen eleres? "
Jelen pillanatban épp így csinálom (csak nem java-ban),
de ez a megoldás 2 db odbc-t használ (egy mssql felé egy meg Oracle felé)
ezt gondoltam lecsökkenteni egyre.

(Nagyon sok rossz tapasztalatom van az ODBCékkel.
én meg tőlük irtózom. :))
Előzmény: halaloszto (2341)
halaloszto Creative Commons License 2007.06.04 0 0 2344
Jo, hat nyilvan a feladat teljes specifikacioja nelkul csak a kodben lovoldozunk.

vajk
Előzmény: tnsnames.ora (2343)

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