Na jó, végeztem még egy mérést, így már van egy tippem.
#1 NLS_LANG=american_hungary.EE8ISO8859P2 sqlplus ... SQL> select * from dual; D - X
#2 NLS_LANG=american_hungary.AL32UTF8 sqlplus ... SQL> select * from dual; DUM --- X
Szóval kimatekozza, hogy az AL32UTF8-ban egy karakter akár három byte is lehet (igazából négy, de mi tökéletes ebben a fájó életben), tehát valamiért három karakterre írja ki a mező nevét is.
Így van, synonym vagy view megoldja a lekérdezést, de pl. a describe nem fog működni, mert ahhoz a jupiter-en lévő user_tab_columns-t kellene elérni két dblinken keresztül.
Oracle APEX-ben szeretnék segítséget kérni, bízok benne hogy maradhat.
Szóval azt szeretném megoldani, hogy egy "Function Body returning SQL Query" által visszaadott táblázatban szeretnék gyorskeresést használni. Keresgéltem már a neten, de amit találtam (java kód az "Execute when Page Loads"-ba ) az így nem működött.
Ezt próbáltam, ami nekem nem működött. Lehet valamit én néztem be, de nem jöttem még rá mit rontok el...
Az alábbiak valamelyikével kérdezhetjük le az adatbázis nevét:
select * from global_name; select ora_database_name from dual;
Az eredményben a domain-rész is ott van (ha van egyáltalán), tehát pl:
UBUL -- itt nincs domain rész
GARFIELD.ARBUCKLE.HOME -- itt van domain rész
A CREATE DATABASE LINK akkor ragasztja hozzá a dblink nevéhez a (helyi) database domainjét, ha nincs pont a névben, és van a database nevében domain rész, pl:
ubul> create database link PROBA ... --> PROBA garfield> create database link PROBA.1 ... --> PROBA.1 garfield> create database link PROBA2 ... --> PROBA2.ARBUCKLE.HOME
Az Állambiztonsági szolgálatoknak legyen akármi a nevük volt szüksége egy reláció modellű rendszerre. A CIA csak egy kisebb része a kezdeti felhasználóknak. Larry Ellison cége nyerte meg a tendert a fejlesztésre. Hiába az IBM matematikusai, találták ki a reláció modellű adatkezelést, használható rendszerük a DB(2) sokkal később jelent meg a keresjedelmi forgalomban.
A SAP egy komplett vállatírányítási rendszer, amit a vevő igényei szerint modulokban installálnak, és világ nem USA részén meglehetősen elterjet. Hasonló rendzser a PeapolSoft vagy rendszere, amit az USA-ban előszerettel használnak.
A 80-as években jutottam működő reláció modellű rendszerhez. Akkor Informix, és Oracle volt a piacvezető. Illetve volt a szabad szoftver Ingress.
Az Apexet én első változatban 99-ben kezdtem használni, internetes-browser cliens , oracle db server alapú fejlesztéseket tett lehetővé. Egy bonyolult alkalmazást kellett megcsinálni. A felhasználók ténylegesen szét voltak szórva a kontinenseken, (Antarktisz kivételével), a felhasználók mennyisége azonban nem volt nagyon jelentős, de 100% adat és feldolgozási biztonságot kellett megoldani.
Off: Azért az interneten sem csupa okosság van ám, és ezen még a mesterséges intelligencia sem segít, sajnos. On: A SAP vállalatirányítási rendszere többféle adatbázissal működhet, pl. Oracle, DB2, MSSQL.
Közben olvastam olyat is, hogy az Oracle adatbáziskezelőt a CIA alkotta meg eredetileg, hogy legyen elérhető relációs adatbáziskezelő, amihez ők hozzáférhetnek.
Az eszközeiket, mint az APEX-et később csinálták még az is lehet, hogy a SAP konkurencia termékeire válaszul.
A SAP-nál mindig figyelik Larry Elison lépéseit és hogy a főnökük le ne maradjon tőle.
Szerintem: "Latin szó (oraculum) az orare (‘beszél, kijelent’) igéből, forrása az os, oris (‘száj’). Lásd még orális, orátor, oratoriánus, oratórium.". Vedd hozzá a jóslatot.
De ugye az megvan, hogy kétmillió sor betöltésénél nem kellene böngésző és webszerver legyen a dologban? Itt lenne rögtön az Sql*Loader az ilyen esetekre.
van egy olyan problémám, hogy egy kb. egy-másfél óra hosszú tárolt eljárás, ami APEX lapról indítva hibátlanul lefut kisebb állományok esetén 10-20 perc alatt, ha a legnagyobb (ami 2 millió soros fájlt olvas be) betöltést futtatom, minden hibaüzenet nélkül leáll. Ugyanez a tárolt eljárás, ugyanazzal a paraméterekkel, PL/SQL Developer-ből és SQL Developer-ből indítva simán, hiba nélkül lefut. Mindenhol van hibakezelés, az APEX timeout értékek maximumra, 28800 sec-ra állítva. Soronkénti követés (file sorszám tmp táblába írása) után kiderült, hogy nem mindig pont ugyanott szakad meg...
:(
Mivel nincs hibaüzenet, elképzelésem sincs hogy honnan közelítsem meg a problémát.