Keresés

Részletes keresés

NevemTeve Creative Commons License 2003.04.11 0 0 86
Köszi!
Gyorsan meg is kérdezem a rendszergazdikat, hátha ezt felejtették el, amiatt gyűlnek a kapcsolatok...
Előzmény: Miyamoto (85)
Miyamoto Creative Commons License 2003.04.11 0 0 85
Elvileg hasznal az Oracle keep_alive-ot (ha szabvanyosan mukodik alatta a TCP/IP). A problema az szokott lenni, hogy nem minden gyarto tartja magat a szabvanyhoz.
Ezt a 'dead connection detection'-nel lehet athidalni.
A szerver oldali sqlnet.ora file-ba kell beirni: SQLNET.EXPIRE_TIME = [perc]

Udv,
M

Előzmény: NevemTeve (84)
NevemTeve Creative Commons License 2003.04.10 0 0 84
Kedves SQL*Net szakértők!
Használ az Oracle TCP KEEP_ALIVE-ot? Ha igen, miért nem... akarom mondani hogyan kell a serverben engedélyeni?
bazsix Creative Commons License 2003.03.27 0 0 83
Na megoldódott a dolog, még egyszer köszi mindenkinek a segítséget!
Tomathos Creative Commons License 2003.03.27 0 0 82
SELECT
CASE WHEN
TO_CHAR(SYSDATE,'D')>'1' AND TO_CHAR(SYSDATE,'D')<'7'
THEN
'Weekday'
ELSE
'Weekend'
END AS period_of_week FROM
dual
Előzmény: bazsix (80)
bazsix Creative Commons License 2003.03.27 0 0 81
Asszem gyakrabban kell frissítést nyomnom!
bazsix Creative Commons License 2003.03.27 0 0 80
crockl! Köszi a választ! Közben rájöttem, hogy amivel az 1)-ben szenvedtem azt asszem megtudom oldani egy subquery-vel. Viszont ezt a CASE-t sehol nem találom a doksiban ami nekem van, tudnál irni egy egyszerű példát, hogy hogyan kell használni? Köszi!
Előzmény: crockl (77)
Tomathos Creative Commons License 2003.03.27 0 0 79
Szerintem alias névre csak az order by-ban hivatkozhatsz, de esetleg így megoldhatod:
select ali from (select (x+y)/z ali from tabla) where ali > 10
Előzmény: bazsix (76)
e_laca Creative Commons License 2003.03.27 0 0 78
1) (így látatlanban:) Igen, ilyen alias-t írhatsz mindenhova, ahova oszlopnevet írhatsz.

2) Használhatod a decode-kifejezést.
decode(kif, kif-ért1, ért1 [, kif-ért2, ért2]... [, default-ért])
tehát egy kifejezés, aztán ha-akkor értékpárok.
Ha "kif" egyenlő valamelyik "kif-ért"-tel, akkor a decode-kifejezés értéke az "kif-ért" után következő "ért" lesz. Ha egyik sem, és van "default-ért", akkor az.
Esetedben decode(oszto, 0, 0, valami)

Írom mindezt emlékezetből - próbáld ki.

Előzmény: bazsix (76)
crockl Creative Commons License 2003.03.27 0 0 77
1)A kifelyezesed ami a select es a from kozott van, az where feltetel utani select eredmenyhalmazon hajtodik vegre, igy where feltetelben nem tudsz hivatkozni ra, de ertelme sincs, de order-nel mar meg tudod adni, mert az az eredmeny halamzon dolgozik mar. Ha ilyesmi kell, irj plsql-be ra procedurat, fguveny, es/vagy azt add where-be is.

2) nezd meg a CASE kifelyezest peldaul.

Előzmény: bazsix (76)
bazsix Creative Commons License 2003.03.27 0 0 76
Sziasztok!
Oracle sqlplus-ban kellene összehoznom 1-2 lekérdezést, de átkozottúl elakadtam vele. Két kérdésem lenne:

1) Select utasításban beírok oszlop definiciónak egy bazi hosszú képletet, és adok neki egy alias nevet. Tudok valahogy ezzel az alias névvel hivatkozni rá, vagy ha újra akarom használni akkor muszály megint kiírnom a képletet?

2) Szintén selectben lehet valahogy feltételes kifejezést beírni oszlop definíciónak? Mondjuk valami ilyenre gondolok (if oszto<>0 then valami/oszto else 0) :))
Ezt most úgy csináltam, hogy az osztómat a where részben vizsgálom, és unio-val hozzácsapom azokat a rekordokat ahol az osztó nulla. De egy olyan lekérdezésben ahol van 15 osztás ez már kb@szott nagy macera, pedig nekem most ilyen kell.

Lécci szánjatok meg valami válasszal ez most életet ment :))

Satriani Creative Commons License 2003.03.06 0 0 75
Kosz szepen Tomi' !
Mukodik :)

Joe S.

Előzmény: Tomathos (74)
Tomathos Creative Commons License 2003.03.06 0 0 74
Hello,

valószínüleg ez hiányzik a deklarációs részből:

pragma restrict_references (sort_orders, WNDS, WNPS);

Üdv

A "mail notification" szerintem itt nem működik.

Előzmény: Satriani (73)
Satriani Creative Commons License 2003.03.06 0 0 73
Szia Tomathos,

hat sajnos az elmeletem meg nem mukodik a gyakorlatban :))
Szoval az a lenyege, hogy a select-emben, hogy olyan erteket is ki tudjak selectalni ami nem tabla-oszlop specifikus, ezert egy fuggveny altal visszaadott erteket selectalok. Ez a fuggveny az en altalam keszitett packageben van, de a lenyeg hogy mikor az igy atmodositott selectet tartalmazo reportot (ami szinten nem mas mint egy package - Portal megjegyzes..:) buildelem a kovetkezo hibauzenettel dob vissza:

'Function GET_ROWS_FUNC does not guarantee not to update database'

ahol GET_ROWS_FUNC termeszetesen az a fuggveny ami a selectben van es hat nincs benne semmilyen 'update..

Szoval miert nem tetszik ez a 'Oracle8 Enterprise Edition Release 8.0.5.0.0'- amnak ? Nem tudod esetleg a 8.0.5-el lenne baja, vagy probaltal mar altalad keszitett fuggvenyt selectbe rakni? Ha igen es mukodott, hogy csinaltad :)

OFF: ezen a Forumon nincs semmi olyan beallitas, hogy ha a hozzaszolasomra valasz erkezik kapjak 'mail notificationt' ?

Előzmény: Tomathos (72)
Tomathos Creative Commons License 2003.03.06 0 0 72
Nem dolgoztam még Protal-al, ez szerintem kiderült a "próbálkozásaimból", de belenéztem a leírásába, ha lesz egy kis időm biztos kipróbálom...
Előzmény: Satriani (71)
Satriani Creative Commons License 2003.03.06 0 0 71
Persze at lehet adni az eid-et is. Tehat eltekintettem attol hogy az oldalon megjeleno osszes sort updateljem egy clickel. Hanem csak soronkent akarom es az volt a bajom hogy adott sor oszlop ertekein kivul nem tudtam 'masfajta' erteket atadni a linkben.
De megoldottam :) a kovetkezo keppen:
tehat ha dolgoztal a Portal-al (bar en nem, csak WebDB-vel, de ugyanaz csak a Porttal egy joval tobbet tudo termek), mikor letrehozol egy reportot a legvegen felkinal tobb ablakot (before displaying page; before displaying form; after displayin footer; after displaying page) ahova PL/SQL blokkokat lehet irni. Csinaltam egy packaget aminek van egy valtozoja egy procedure (bemeno parametere a _max_row erteket kapja es atadja a sajat valtozojanak, es egy fuggvenye ami visszaadja a belso valtozo erteket (azaz _max_rows erteket). A before displaying page ablakban meghivom a packagem procedure-jet. Utana jon a tenyleges select es itt mar hasznalhatom a packagem fuggvenyet ami a select-ben visszaadja a _max_rows erteket barmelyik sorban igy a linkben is at tudom passzolni.
Nem tudom ha ertheto voltam.
Azert kosz a segitseget !
Előzmény: Tomathos (70)
Tomathos Creative Commons License 2003.03.05 0 0 70
Tehat a select-ben olyan parametereket tudok atadni az eljarasomnak jobban mondva olyan ertekeket amelyek adott sor oszlopainak az erteke

Akkor az eid-t is át tudod adni?
Előzmény: Satriani (68)
Satriani Creative Commons License 2003.03.04 0 0 69
Na...ra kell clickelni arra a '||state||' -re hogy lasd az Address barban mit akartam irni :)
Előzmény: Satriani (68)
Satriani Creative Commons License 2003.03.04 0 0 68
Huu.. ez egy kicsit velos volt :) de azert kosz !
Tehat a select-ben olyan parametereket tudok atadni az eljarasomnak jobban mondva olyan ertekeket amelyek adott sor oszlopainak az erteke. Pont az a bajom hogy ennek a _max_rows (oldalon megjeleniteni kivant sorok szama) -nak az erteket nem tudom atpasszolni a linkben.

Igy nez ki a selectem:

select
name,
''||state||'' as state
from mytable;

Mondjuk most mar el is tekintettem attol a megoldastol hogy az oldalon megjelenitett osszes sort updateljem, hanem megelegszek azzal hogy egyenkent (azaz soronkent updateljen a user) de mikor update utan egy 'Bac to List' gombbal visszater a listahoz nincs hogy atadodjon a _max_rows erteke ujbol a reportnak.

Hat nem tudom ha vilagos voltam..

Előzmény: Tomathos (67)
Tomathos Creative Commons License 2003.03.04 0 0 67
Azt a select-et át tudod adni az eljárásodnak amit a html lapra kiteszel? Ha igen akkor update... where eid in (html-es select eid-ra)
Előzmény: Satriani (66)
Satriani Creative Commons License 2003.03.03 0 0 66
Sziasztok,

egy kis segitseget, otletet szeretnek kerni.
Aki dolgozott/-ik az Oracle Portal-al, vagy WebDB-vel (en most azt nyomatom) elsosorban talan az tudna segiteni.
Szoval csinaltam egy reportot ahol megtudom adni (marmint a user tudja megadni) hogy hany sort jelenitsen meg egyszerre a html oldalon.
Ebbe a reportba beleintegraltam egy 'Update' buttont ami az aktualisan megjelenitett sorokban egy oszlopot, mondjuk 'State'-t updateli egy elore definialt ertekkel.
Az egesz a kovetkezo elv alapjan mukodik (amit en talaltam ki..es nem 100% jo:). A report megjelenitest ugy implementaltam egy select utasitassl, hogy
hasznaltam egy 'order by eid'-t a vegen ahol 'eid' egy PK. Aztan ha raklikkelek az 'Update' buttonra az meghiv egy proceduret aminek bemeno parametere a megjeleniteni kivant sorok szama; es ugy
updatelem a tablat hogy ott is 'eid' sorrend szerint csak a parameterkent atadott sorok szamat updatelem.

A baj a kovetkezo: ha a html lapon a user megnyomja a 'Next' gombot (ami mondjuk a kovetkezo 5 - vagy user altal megadott sort - jeleniti meg) es utana az 'Update' gombot, akkor termeszetesen a sorrendben az elso 5 sort fogja updatelni a procedurem,
Valamikepp at kellene adnom a procedurenek, hogy mondjuk melyik a kezdeti 'eid' szam ahonnan kezdje updatelni az 5 sort (peldanal maradva:).

Van valakinek otlete, esetleg mas technika, hogy hogyan, vagy mitt kellene atadjak a proceduremnek hogy a kepenmegjelenitett sorokat updateleje?

Elore is kosz, johetnek maganba is az otletek. Az OTN-en probalkoztam, nem kaptam valaszt, nem nagyon csipik az ilyen regi dolgokat mint WebDB :) de lenyegeben aki Portalban tudja a megoldast az WebDB-ben is mukodik ..
Vagy ha tudtok mas forumokat ahol erdeklodhetek a temaval kapcsolatban..
Ja, es persze az ido is surgetne...:)

crockl Creative Commons License 2003.02.12 0 0 65
sql+ -nak nem feltetlenul kell a beallitott tnsname, tud a helyi futo oracle-hoz kapcsolodni nelkule is.
Delphi alol oracle-hoz pedig mindenkepp a ODAC-ot ajanlanam: http://crlab.com/odac/
Előzmény: NevemTeve (63)
Tomathos Creative Commons License 2003.02.12 0 0 64
Talán ez segít.
Előzmény: ROCKER (61)
NevemTeve Creative Commons License 2003.02.12 0 0 63
De ha mar egyszer ment neki az Sql*Plus, akkor programból miért nem tud kapcsolódni?
Előzmény: crockl (62)
crockl Creative Commons License 2003.02.12 0 0 62
tnsnames.ora file-odat szerkeszd meg az admind dir alatt. Amugy technet.oracle.com es doksiba szajbaragosan bennevan mit ohgy kell beallitani ezen file-ba.
Előzmény: ROCKER (61)
ROCKER Creative Commons License 2003.02.12 0 0 61
Sziasztok!

Előlegesen annyit, hogy (tegnapelőttig) soha nem volt szerencsém az Oracle-höz, viszont mivel a rendszert, amit írok (Delphiben) Oracle kiszolgálóhoz kell illeszteni, és a környezetemben nincs olyan ember, aki foglalkozott volna akár a legminimálisabb szinten Oracle-lel.

Szóval felhúztam egy Ora9i-t a gépemre (W2000Pro), és létrehoztam egy adatbázist, és SQLPlus segítségével tudtam is manipulálni az adatokat, de külső programmal nem tudtam csatlakozni.

Odáig eljutottam, hogy kell TNSListener, de még ez után is hibákat dobott a Service Naming teszt, miszerint nem tudja meghatározni a SERVICE_NAME-et.

Az a kérdésem, hogy mire kell odafigyelni adatbázis létrehozásánál, milyen opciókat kell/érdemes be- illetve kikapcsolni, és ha az adatbázis létrejött, akkor milyen egyéb teendők szükségesek még, hogy ADO, ODBC illetve BDE segítségével tudjak az adatbázishoz csatlakozni.

Bocs a lamer kérdésért, de két napja (napi 12 órában) a Helpre folyasztom a szemeimet, és már ott tartok, hogy újrahúzom az Oracle-t egy kiadós Registry-takarítás után, mert tuti valamit elszúrtam a telepítésnél.

Ha valaki segítségnyújtásra szánja el magát, kérem kopipésztelje egy levélbe a válaszát, ugyanis nincs WEB-hez hozzáférésem, ez is csak véletlen, hogy most tudtam írni.

Ugyanakkor aki segíteni "mer", az arra is készüljön fel, hogy intézek még hozzá kérdéseket. :))

A címem: rocker@leadsys.hu.

ROCKER

vjozso Creative Commons License 2003.02.06 0 0 60
Ugy emlékszem, hogy csak a 8i enterprise edition tudja az execute immediate-t, a standard nem. Hogy a personal micsoda azt nem tudom, de szerintem inkább standard, és akkor ő sem tudja.
.
.
Ha valaki Debrecenben vagy a környékén keres embert rendszerüzemeltetésre, akkor ne keressen tovább, megtalálta... :)
Előzmény: altvizsla (57)
Tabby Creative Commons License 2003.01.31 0 0 59
Kösz, de ezeket már mind végigpróbáltuk. Az expire_time is be van állítva, jelenleg 10 perc. A forráshoz - természetesen elvileg :) - nincs hozzáférésünk.
Egyébként úgy tűnik, a fejlesztők csak csináltak vmit az adatbázissal, mert az utóbbi napokban jelentősen lecsökkent a leírt jelenségek száma és egyenlőre bőven beleférünk a beállított határértékek közé.
Előzmény: Miyamoto (58)
Miyamoto Creative Commons License 2003.01.31 0 0 58

A hibak amiket kapsz egyertelmuen valami eroforras korlatra utalnak (valoszinuleg memoria).
Ha ezt akarod megoldani akkor, probald meg:
- novelni a PROCESSES parametert
- csokkenteni az SGA meretet
- valahogy ravenni a Win2k-t, hogy adjon tobb memoriat az Oracle-nek (lehet, hogy ez hulyeseg; sosem hasznaltam Oracle Windows alatt)

Ha sikerul is igy megoldani, ez akkor is csak tuneti kezeles. Valoszinuleg napokkal kesobb megint ugyanazt a hibat fogod latni.
Jobb lenne megkeresni, hogy miert nyilik annyi uj kapcsolat. Lehet, hogy az alkalmazas csak nyitja renduletlenul, de nem zarja be oket.
Ha nem megoldhato az osszes kod atnyalazasa, mert nem a tietek, draga vagy nincs aki csinalja, akkor probalj meg SQLNet-en beallitani 'Dead Connection Detection'-t, talan ez is segit valamit.
A szerver oldali sqlnet.ora file-ba kell beirnod, hogy SQLNET.EXPIRE_TIME = [perc] . (Azt hiszem ez csak TCP/IP alatt mukodik, de gondolom azt hasznaltok.)

Hirtelen ennyi jutott eszembe...

Udv,
M

Előzmény: Tabby (55)
altvizsla Creative Commons License 2003.01.30 0 0 57
Igaz hogy több mint féléves a kérdésed, de:

1. Mi a pontos hibajelenség (ha pl. SQL+ -ból adod ki)

2. Natúr nem adható ki csak PL/SQL blokkból, pl:


begin
execute immediate 'create table x(a number)';
end;
Előzmény: Törölt nick (30)

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