Új hozzászólás Aktív témák
-
lakisoft
veterán
Nincsen probléma a hostnév + IP megfeleltetéssel. Nem fut a listener. Ha kézzel indítom akkor daemon userrel fut.
az oracle-xe ide vonatkozó része így néz ki:
start() {
if [ "$CONFIGURE_RUN" != "true" ]
then
echo "Oracle Database 11g Express Edition is not configured. You must run
'/etc/init.d/oracle-xe configure' as the root user to configure the database."
exit 0
fi
status=`ps -ef | grep tns | grep oracle`
if [ "$status" == "" ]
then
if [ -f $ORACLE_HOME/bin/tnslsnr ]
then
echo "Starting Oracle Net Listener."
$SU -s /bin/bash $ORACLE_OWNER -c "$LSNR start" > /dev/null 2>&1
touch /var/lock/subsys/listener
fi
fi
pmon=`ps -ef | egrep pmon_$ORACLE_SID'\>' | grep -v grep`
if [ "$pmon" = "" ];
then
echo "Starting Oracle Database 11g Express Edition instance."
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql" > /dev/null 2>&1
else
echo "Oracle Database 11g Express Edition instance is already started"
fi
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
echo
touch /var/lock/subsys/oracle-xe
else
echo Failed to start Oracle Net Listener using $ORACLE_HOME/bin/tnslsnr\
and Oracle Express Database using $ORACLE_HOME/bin/sqlplus.
RETVAL=1
fi
return $RETVAL
} -
bpx
őstag
válasz
lakisoft #698 üzenetére
Az /etc/init.d/oracle-xe scriptben nézelődnék, esetleg beleraknék saját logolást, ha nincs benne. Ha minden OK benne, pár lehetséges ok a listener nem indulására (feltéve, hogy eljut idáig):
- név+IP megfeleltetése rossz: /etc/hosts-ban a hostname + IP nem jó, esetleg a listener.ora-ban rossz hostname vagy IP szerepel
- foglalt a port
- fut már a listener (egyik korábbi postban, amit írtál a daemon nevében indult)
- a listener.ora-ban szintaktikai hiba van -
bpx
őstag
válasz
lakisoft #696 üzenetére
A gyári megoldás a listenerek és adatbázisok automatikus indítására a Grid Infrastructure. Viszont ez single instance adatbázisra (ASM nélkül) + listenerre overkill, szóval ott egyedi init scripteket szoktunk használni. Példa itt: [link]
Ha viszont még mindig ugyanarról az XE adatbázisról van szó, az ezt megcsinálja magának alapból.
-
MrSealRD
veterán
válasz
rum-cajsz #692 üzenetére
Ami nálam van lokálban az egy Win7 Prof 64bit + 4GB RAM.
Ezen nem csoda, hogy megfekszik a dolog...Már annak is örültem, hogy a hidden parameter állítása után lefutott a fele oszlopszámmal. Dupla ennyi RAM mint nekem meg csak van abban a nyüves szerverben amin futtatni akarják. -
MrSealRD
veterán
Hát ez egy jó kérdés...
Korlátozottak az én információim is meg aztán nem is írhatom le ide a részleteket nagyon.
A dupla ciklust én írtam azért, hogy szimuláljam azt a lekérdezést amit az ügyfél végez a saját DB-jén. Mivel nem áll rendelkezésemre 50 oszlopnyi és legalább 30000 sornyi adat...
A ciklusváltozók értékeit használom fel, hogy valami értelmessel megtöltsem azt a fájlt amit ezután blobként tárolok le. nevezzük mondjuk *.csv-nek...akár...
Saját gépemen figyeltem, hogy ugrik meg az oracle.exe memóriafelhasználása...nálam alapból 300 MB körül használ...Innen ugrott fel a kérdéses méretre.
-
MrSealRD
veterán
válasz
rum-cajsz #688 üzenetére
Köszi, hogy ezt írtad, mert ugyanezeket kérdeztem vissza.
Ezek szerint jólfelé gondolkodtam.Igen láttam ezt az oldalt.
Történet:
Beesett ez a bug egy ügyféltől, azzal a kísérőszöveggel, hogy eddig ment de most reggel ezt dobja, és mennyi memória kell az alkalmazásnak... Ebből már az elején az volt az érzésem, hogy némileg rosszul állnak a probléma kezeléséhez. -
MrSealRD
veterán
Van egy ilyen bug-om:
ORA-04030: out of process memory when trying to allocate 16356 bytes (koh-kghu sessi,pmuccst: adt/recordAkkor dob egy ilyet ha mondjuk két egymásba ágyazott for-al próbálok szimulálni egy tábla sor/oszlop feltöltést.
Sor 32000-50000
Oszlop 25-50Persze a belső ciklusban hívok egy saját eljárást amit teszi a dolgát...(mondjuk úgy külső eljárás) de ez most mindegy igazából.
Aztán google túrkálás közben találtam a fenti problémára egy ilyet:
alter system set "_realfree_heap_pagesize_hint"= 262144 scope = spfile;A hibát a gépem 32K sor és 25 oszlopnál már bedobta. A fenti sor után hirtelen 2,4GB-ot bekajált a RAM-ból de legalább lefutott.
A probléma az scope = spfile résszel van. Restartolnom kell hozzá a DB-t. Éles rendszerre így nem biztos, hogy ki tud menni.
Van olyan megoldás aminél nem kell oracle szervert restartolni?
-
bpx
őstag
válasz
fapuskapa #684 üzenetére
Ha magasabb verziójú lenne, akkor meg lehetne nyitni
alter database open resetlogs upgrade;
paranccsal. Így, hogy alacsonyabb verziójú, a
alter database open resetlogs downgrade;
működhet, de csak akkor, ha a forrás rendszeren a compatible paraméter legfeljebb 11.2.0.1. Mindkét esetben további lépések szükségesek, hogy az adatbázis használható állapotba kerüljön. Szerintem ebben a helyzetben egyikre sem érdemes időt pazarolni, rakj fel egy ugyanolyan verziót.
-
fapuskapa
csendes tag
Sajnos arra jön egy további probléma. Azt hittem, hogy a hiányzó fájlok miatt.
SQL> alter database open resetlogs;
alter database open resetlogs
*
Hiba a(z) 1. sorban:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-00704: bootstrap process failure
ORA-39700: database must be opened with UPGRADE option
Processz azonosítója: 4058
Munkamenet azonosítója: 23, sorozatszáma: 9 -
fapuskapa
csendes tag
sajna megint elakadtam.
RMAN> recover database;
recover indítása 2014/08/11 helyen
kiosztott csatorna: ORA_DISK_1
ORA_DISK_1 csatorna: SID=23, eszköztípus=DISKadathordozó-helyreállítás megkezdve
ORA_DISK_1 csatorna: archivált napló visszaállításának indítása az alapértelmezett helyen
ORA_DISK_1 csatorna: archivált napló visszaállítása
archivált napló: szál=1, sorszám=3002
ORA_DISK_1 csatorna: olvasás a(z) /u03/backup/online_backup/dbsid/hvpflqfp_1_1 mentésparcellából
ORA_DISK_1 csatorna: parcellakezelő=/u03/backup/online_backup/dbsid/hvpflqfp_1_1, címke=BACKUP_dbsid.ZEISS_081114083558
ORA_DISK_1 csatorna: visszaállított mentésparcella: 1
ORA_DISK_1 csatorna: visszaállítás befejeződőtt, eltelt idő: 00:00:07
archivált napló: fájlnév=/u03/admin/dbsid/arch/1_3002_777371879.dbf, szál=1, sorszám=3002
nem található archivált napló
archivált napló: szál=1, sorszám=3003
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: hiba a(z) recover parancsban a(z) 08/11/2014 14:20:43 helyen
RMAN-06054: Az adathordozó-helyreállítási művelet ismeretlen archivált naplóra hivatkozik. Szál: 1, sorszám: 3003, kezdő SCN: 126746227. -
papasoft80
tag
válasz
papasoft80 #677 üzenetére
Pfúú! Nagy ám itt a káosz(a fejemben is egyre inkább)
Az úgy volt, hogy egy linux-os szerveren volt egy Oracle 8.1.7, onnan az alábbi dump készült:
Kapcsolódva: Oracle8i Enterprise Edition Release 8.1.7.0.1 - Production
JServer Release 8.1.7.0.1 - Production
Az exportálás EE8ISO8859P2 karakterkészlettel és EE8ISO8859P2 NCHAR karakterkészlettel befejeződöttEz be lett töltve egy win-es Oracle 8.1.7-be így:
Kapcsolódva: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
JServer Release 8.1.7.0.0 - Production
Exportfájl, amelyet a hagyományos elérési útvonalon keresztül EXPORT:V08.01.07 hozott létre
az importálás a(z) EE8MSWIN1250 karakterkészletben és a(z) EE8MSWIN1250 NCHAR karakterkészletben történt
az exportáló ügyfél a(z) EE8ISO8859P2 karakterkészletet használja (lehet, hogy karakterkészlet-konverzióra kerül sor)
az exportáló kiszolg. a(z) EE8ISO8859P2 NCHAR kar.készletet használja (lehet, hogy a nemzeti kar.készlet konverziójára kerül sor)Itt látszanak az ékezetek.
Ebből az export így néz ki:
Kapcsolódva: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Production
JServer Release 8.1.7.0.0 - Production
Az exportálás EE8MSWIN1250 karakterkészlettel és EE8MSWIN1250 NCHAR karakterkészlettel befejeződöttA feladat az lenne, hogy a Windows-os gépről kellene olyan exportot készítenem, ami tartalmazza az ékezeteket és ezt kellene betöltenem egy linuxos Oracle 11g R2.0.1-be, amit - ha jól láttam a createdb.sql-ben - sikerült EE8MSWIN1250 UTF8-al létrehozni.
Az ellenőrzést az is bonyolítja, hogy az SQLPlus a környezeti NLS_LANG változóra érzékenyen jeleníti meg a szöveget.
A kérdés, hogy jó-e így a 11g adatbázis, vagy csináljak újat más karakterkészlettel, vagy van valami mód a migrálásra?
Korrigáljatok, ha nagy baromságokat írtam. -
papasoft80
tag
válasz
rum-cajsz #676 üzenetére
Tökéletes meglátás! Nagyon köszönöm!
Nem tudtam, hogy már case-sensitive lett az Oracle. A 8.1.7-ben, még a jelszavaknál sem nézte
Most a gondom, hogy nem látszanak az ékezetek az adatoknál, de ez már inkább az adat migrálás miatt lehet. Az eredeti dump EE8MSWIN1250 NCHAR-ban készült és EE8MSWIN1250 UTF-8-ba lett befogadva. Lehet, hogy itt kell majd valamit mahinálni, majd utána olvasok.
Még egyszer köszönöm a gyors választ!
-
rum-cajsz
őstag
válasz
papasoft80 #675 üzenetére
nem értek a windows programozáshoz, de ha jól értelek, akkor mégiscsak a tnsnames és sqlnet ora fájlokat kellene jól belőni.
Nálam az Instant client könyvtárba betéve jól működik az OCI kapcsolat. Annyi az újdonság, hogy a 10-estől felfelé kis-nagybetű érzékeny lett a szervernév valamiért, így nem mindegy hogyan szerepel a tnsnames.ora fájlban az adatbázis szerver neve. Ha jól emlékszem, akkor csupa kisbetű kell. -
papasoft80
tag
Remélem van itt olyan, aki tud segíteni, mert nem tudom hogyan induljak el.
Korábban Oracle 8i-t használtam Delphi 6-ból ADO-val Oracle Forms Runtime-al(a Net8 miatt).
Na most ez már nem elérhető, így váltanom kellett Oracle 11g R2-re. A Forms Runtime-ot amúgy sem használom és most rátaláltam az Oracle Instant Client(továbbiakban OIC)-re, ami úgy láttam, hogy pont a nekem való megoldás.
Nagy nehezen sikerült megoldanom, hogy a kliens gépről SQLPlus-al már megy a kapcsolat az OIC-el. Persze tnsnames.ora és sqlnet.ora nélkül "sima" kapcsolódással(user/password@//ip:port/SID).Namost a problémám, hogy hogyan tudok Delphi-ből(6-os vagy 7-es, vagy esetleg újabb, de azokat nem ismerem) kapcsolódni az Oracle 11-hez az OIC-en keresztül. Az ADO mindenáron keresi a "Forms Runtime szerű" adatokat a kapcsolathoz és nem tudom hogyan lehetne megmondani neki, hogy hogyan kapcsolódjon.
ODBC is játszik, ha azzal menne a dolog. Win7 64bit-en próbáltam az OIC-ODBC-s verzióját és ment a kapcsolat tesztelése(az ODBC managerben), XP-n már nem ment. Próbáltam a környezeti változókat is megadni, hátha(ORACLE_HOME, TNS_ADMIN).
VirtualBox-ot használok. Host: Win7 64bit OIC64bit_11.2.0.1. guest1: CentOS6.5 Oracle 11gR2_0.1. guest2: XP OICx32_11.2.0.1 Bridge-el hálózattal, vagyis a guest gépeknek is azonos tartományú az IP-címe.
Gyors megoldás kellene, ha favágós, az sem érdekel, majd később finomítom.
Segítségeteket előre is nagyon köszönöm! -
bpx
őstag
válasz
fapuskapa #672 üzenetére
Ok, de ezek között nincs controlfile autobackup, ez ránézésre látszik. A controlfile autobackupnak saját rögzített formátuma van (%F - c-DBID-datum-sequence), ezek sima %U-s formattal készített backupok.
A méretükből ítélve a hmpeshhn_1_1 és hopeshjr_1_1 tűnik controlfile backupnak. A hlpeshe3_1_1 gondolom az adatbázis fájljait tartalmazza. Aztán mivel nincs controlfile autobackup, ilyenkor implicit módon történik egy controlfile mentés az adatfájlok mentése után, gondolom ez a hmpeshhn_1_1. Online mentés, az archivelogokat is menteni kell, arra tippelek, hogy azok lehetnek a hnpeshhq_1_1-ban. Végül hogy használható legyen a mentés, kell egy controlfile backup a legvégén, ez lehet a hopeshjr_1_1.
Ha a fenti igaz, akkor nincs autobackup, sem spfile backup.
Én átmásolnám az spfile-t a meglévő adatbázisról, vagy összeraknék egy minimális pfile-t az új gépen. Ha ez megvolt, akkor mehet a STARTUP NOMOUNT. Utána RMAN-ban:
restore controlfile from '/u03/backup/online_backup/dbsid/hopeshjr_1_1';
alter database mount;Ha a mentések ugyanezen az útvonalon készülnek a forrás gépen (/u03/backup/...), akkor a következő lépésre nincs szükség, ha viszont nem, akkor be kell katalogizálni a mentéseket:
catalog start with '/u03/backup/online_backup/dbsid/';
Végül az adatbázis visszaállítása, recovery, és megnyitása:
restore database;
recover database;
alter database open resetlogs; -
lakisoft
veterán
Ennyi van itt:
less rc.d/init.d | grep oracle
-rwxr-xr-x. 1 root root 19592 Aug 29 2011 oracle-xe*
A listener nem indul el automatikusan. Ez létezik?Más: Az apexhez mit kell beállítani hogy működjön?
Ezzel próbálkoztam, de nem sikerült belőni.
1) Install Oracle 11g with embedded pl/sql gateway ------------OK
2) Run apxconf.sql ----------------------------------------------------------OK
3) ALTER USER ANONYMOUS ACCOUNT UNLOCK;--------OK
4) Enabling Oracle XML DB HTTP Server. --------------------------OK
5) Run application.(http://user:8080/apex/f?p=102:2) -----------OK
6) Access application from other pc(http://user:8080/apex/f?p=102:2) -
fapuskapa
csendes tag
Backup fájlok helye: /u03/backup/online_backup/dbsid
Fájlnevek:
-rwxrwxrwx. 1 oracle oinstall 6598336512 Aug 1 18:32 hlpeshe3_1_1
-rwxrwxrwx. 1 oracle oinstall 9863168 Aug 1 18:32 hmpeshhn_1_1
-rwxrwxrwx. 1 oracle oinstall 1982173184 Aug 1 18:33 hnpeshhq_1_1
-rwxrwxrwx. 1 oracle oinstall 9830400 Aug 1 18:33 hopeshjr_1_1A 7 napba még belefér. Viszont elég érdekes fájlnevek, de a megfelelő adatokat tartalmazza.
-
bpx
őstag
-
fapuskapa
csendes tag
Átolvastam a leírást és korábban elkövettem azt a hibát, hogy FROM paraméterrel hivatkoztam a mentések fájljaira a RESTORE parancsban.
Ha követem a leírást, szerintem nem sikerül az autobackup-ok helyét definiálnom.Kiadott parancsok:
% rman NOCATALOG
RMAN> CONNECT TARGET /
SET DBID 0000000000;
STARTUP NOMOUNT
RUN
{
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u03/backup/online_backup/dbsid/%F';
RESTORE SPFILE TO PFILE '/u03/recovery/initdbsid.ora' FROM AUTOBACKUP;
SHUTDOWN ABORT;
}Output:
felszabadított csatorna: ORA_DISK_1
kiosztott csatorna: c1
c1 csatorna: SID=19, eszköztípus=DISKparancs végrehajtása: SET CONTROLFILE AUTOBACKUP FORMAT
restore indítása 2014/08/04 helyen
Helyreállítási terület célja: /u01/app/oracle/flash_recovery_area
a kereséshez használt adatbázisnév (vagy egyedi adatbázisnév): DBSID
c1 csatorna: nem található automatikus biztonsági másolat a helyreállítási területen
c1 csatorna: a vezérlőfájl 20140804 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140803 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140802 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140801 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140731 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140730 napi automatikus biztonsági másolatának keresése
c1 csatorna: a vezérlőfájl 20140729 napi automatikus biztonsági másolatának keresése
c1 csatorna: nem található 7 napon belül készelt automatikus biztonsági másolat
felszabadított csatorna: c1
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: hiba a(z) restore parancsban a(z) 08/04/2014 20:31:16 helyen
RMAN-06172: nem található AUTOBACKUP, vagy a megadott leíró nem érvényes másolatra vagy parcellára mutatHol lehet hiba?
-
bpx
őstag
válasz
fapuskapa #667 üzenetére
Restoring a Database on a New Host
Mivel egy részét már megcsináltad, azt is leírhatnád, hogy eddig mit csináltál, és hol nem tudsz tovább menni.
-
fapuskapa
csendes tag
Sziasztok!
Segítséget szeretnék kérni tőletek adatbázismentés tesztelésében.
Minden éjszaka lefut egy Enterprise Managerben beállított teljes mentés. Ezt sikerült már tesztelnem, adatbázisfájlok törlése után sikerült azokat visszaállítanom az eredeti szerveren.
Most szeretnék egy disaster recoveryt is kipróbálni egy virtuális gépen, egy általam telepített Oracle adatbázisszerveren. RMAN-al sikerült visszaállítanom az SPFILE-t, control fájlokat és adatbázisfájlokat, viszont eddig nem voltam képes ezeket működőképessé tenni.Tudna valaki segíteni egy folyamatleírással, esetleg egy linkkel?
Üdv: Laci
-
lakisoft
veterán
válasz
lakisoft #664 üzenetére
less /etc/init.d/oracle-xe:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export ORACLE_SID=XE
export ORACLE_BASE=/u01/app/oracle
export PATH=$ORACLE_HOME/bin:$PATH
LSNR=$ORACLE_HOME/bin/lsnrctl
SQLPLUS=$ORACLE_HOME/bin/sqlplus
ORACLE_OWNER=oracle
LOG="$ORACLE_HOME_LISTNER/listener.log" -
bpx
őstag
válasz
lakisoft #662 üzenetére
de, oracle-ként kellene futnia
az automatikus indulás nem használ .bashrc-t vagy ilyesmit, szép is lenne
az /etc/init.d/oracle-xe az induláshoz használt script
ebben pl. az ORACLE_OWNER változó mondja meg, hogy kinen a nevében fusson a listener + adatbázis, szóval megnézném hogy került oda a daemon
a fenti listeneres hibát is tipikusan az okozza, hogy különböző userek próbálják meg ugyanazt a listenert matatni -
lakisoft
veterán
válasz
lakisoft #661 üzenetére
./lsnrctl start
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 04-AUG-2014 04:24:17
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Starting /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.2.0.2.0 - Production
System parameter file is /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/oracle/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
TNS-12555: TNS:permission denied
TNS-12560: TNS:protocol adapter error
TNS-00525: Insufficient privilege for operation
Linux Error: 1: Operation not permitted
Listener failed to start. See the error message(s) above...
bash-4.1$ less /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/oracle/listener/alert/log.xml
bash-4.1$ ls -la /u01/app/oracle/product/11.2.0/xe/network/admin/*
-rwxr-xr-x. 1 oracle dba 439 Jul 21 11:20 /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
-rwxr-xr-x. 1 oracle dba 426 Jul 21 11:20 /u01/app/oracle/product/11.2.0/xe/network/admin/tnsnames.oraMegint gond van.
.
-
lakisoft
veterán
Ha ezek beállítom, akkor minden okés, de újraindítás után újra nem tudok kapcsolódni a szerverhez.
Ez lehet a gond, hogy a környezeti változók nincsenek benne a bashrc-ben?Másik kérdés:
daemon 19942 0.0 1.2 217312 13008 ? Ssl 03:38 0:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit
Ez így jó? nem az oracle usernek kellene ezt is futtatnia?
-
bpx
őstag
válasz
MrSealRD #658 üzenetére
Olyat szeretnél, amit nem lehet. A 10.1-es doksiban egyértelműen le van írva konkrétan ez, hogy nem lehetséges:
http://docs.oracle.com/cd/B14117_01/appdev.101/b10807/10_objs.htm#i7523
The datatype can be any Oracle type except:
...
- Types defined inside a PL/SQL packageAz újabbakban már cifrázták kicsit:
http://docs.oracle.com/database/121/LNPLS/create_type.htm#LNPLS1652
The data type of an ADT attribute. This data type must be stored in the database; that is, either a predefined data type or a user-defined standalone collection type.
http://docs.oracle.com/database/121/LNPLS/composites.htm#LNPLS354
A collection type defined at schema level is a standalone type. You create it with the "CREATE TYPE Statement".
Tehát vagy predefined típusok, vagy általad definiált standalone kollekció.
-
MrSealRD
veterán
Játék a típusokkal...
Szóval úgy kezdődött, hogy adott két rekord típusom egy package-ben. Mindkettő kölcsönösen tartalmazza a másikat, vagyis csak tartalmazná mert PL/Sql ugye nem engedi...
Aztán találtam egy olyat, hogy Forward Type Definition...Pl:
create type employee as object(
num integer,
dept Ref department
);illetve
create type department as object(
num integer,
emp Ref employee
);Ennek jól megörültem mert működik. Itt jött a probléma.
Akartam csinálni egy ilyet:
create type department as object(
num integer,
emp Ref employee,
myfield mypackage.mytype
);A típus létezik, és a csomag is valid. Azonban mégis azt írja, hogy ez a típus nincs deklarálva.
( a department type természetesen drop-ot kapott és tiszta lappal indítva próbáltam meg újra létrehozni.)
Tud erre valaki valamit? Vagy egyáltalán két típus egymásban felhasználhatóságát..?
-
lakisoft
veterán
lsnrctl status
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 12:17:41
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date 29-JUL-2014 11:49:34
Uptime 0 days 0 hr. 28 min. 7 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostnév)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostnév)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfullyrun as oracle user:
/etc/init.d/oracle-xe status
You must be root user to run the configure script. Login as root user and
then run the configure script.run as root user:
/etc/init.d/oracle-xe status
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 12:21:10
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.2.0 - Production
Start Date 29-JUL-2014 11:49:34
Uptime 0 days 0 hr. 31 min. 37 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File /u01/app/oracle/product/11.2.0/xe/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/11.2.0/xe/log/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostnév)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostnév)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully -
bpx
őstag
válasz
lakisoft #653 üzenetére
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe
export PATH=$ORACLE_HOME/bin:$PATH
lsnrctl statusAz ORACLE_HOME-ot be kell állítani, azon belül vannak azok a fájlok, amelyben a hibakódok és szöveges leírásuk vannak összemappelve. A TNS-1106 egyébként azt jelenti, hogy fut már ilyen nevű listener, így nem tudja elindítani.
XE-nél van ilyen is:
/etc/init.d/oracle-xe status
Az adatbázis működéséhez egyébként nem kell listener.ora, tnsnames.ora, sqlnet.ora.
Viszont érdekelne, hogy hogyan próbálkozol SQL Developerből, és milyen hibaüzenet kapsz, mert amit írtál, nem áll össze, ORA-1031 helyett TNS-12528-at kellett volna kapnod már ott is, ha az adatbázis eddig is ebben az állapotban volt, mint amit délelőtt írtál.
-
lakisoft
veterán
-bash-4.1$ ./lsnrctl start
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 11:59:39
Copyright (c) 1991, 2011, Oracle. All rights reserved.
TNS-01106: Message 1106 not found; No message file for product=network, facility=TNS [LISTENER]viszont:
-bash-4.1$ ps -ef | grep oracle
root 13205 13022 0 11:36 pts/1 00:00:00 su - oracle
oracle 13206 13205 0 11:37 pts/1 00:00:01 -bash
oracle 13365 1 0 11:41 ? 00:00:00 xe_pmon_XE
oracle 13367 1 0 11:41 ? 00:00:00 xe_psp0_XE
oracle 13369 1 0 11:41 ? 00:00:01 xe_vktm_XE
oracle 13373 1 0 11:41 ? 00:00:00 xe_gen0_XE
oracle 13375 1 0 11:41 ? 00:00:00 xe_diag_XE
oracle 13377 1 0 11:41 ? 00:00:00 xe_dbrm_XE
oracle 13379 1 0 11:41 ? 00:00:00 xe_dia0_XE
oracle 13381 1 0 11:41 ? 00:00:00 xe_mman_XE
oracle 13383 1 0 11:41 ? 00:00:00 xe_dbw0_XE
oracle 13385 1 0 11:41 ? 00:00:00 xe_lgwr_XE
oracle 13387 1 0 11:41 ? 00:00:02 xe_ckpt_XE
oracle 13389 1 0 11:41 ? 00:00:02 xe_smon_XE
oracle 13391 1 0 11:41 ? 00:00:00 xe_reco_XE
oracle 13393 1 0 11:41 ? 00:00:02 xe_mmon_XE
oracle 13395 1 0 11:41 ? 00:00:00 xe_mmnl_XE
oracle 13397 1 0 11:41 ? 00:00:00 xe_d000_XE
oracle 13399 1 0 11:41 ? 00:00:00 xe_s000_XE
oracle 13401 1 0 11:41 ? 00:00:00 xe_s001_XE
oracle 13403 1 0 11:41 ? 00:00:00 xe_s002_XE
oracle 13405 1 0 11:41 ? 00:00:00 xe_s003_XE
oracle 13475 1 0 11:44 ? 00:00:03 xe_vkrm_XE
oracle 13477 1 0 11:45 ? 00:00:00 xe_qmnc_XE
oracle 13479 1 0 11:45 ? 00:00:00 xe_q000_XE
oracle 13481 1 0 11:45 ? 00:00:00 xe_q001_XE
oracle 13496 1 0 11:45 ? 00:00:00 xe_cjq0_XE
oracle 13568 1 0 11:49 ? 00:00:00 /u01/app/oracle/product/11.2.0/xe/bin/tnslsnr LISTENER -inherit
oracle 13582 1 0 11:50 ? 00:00:00 xe_smco_XE
oracle 13733 1 0 12:00 ? 00:00:00 xe_w000_XE
oracle 13772 13206 2 12:01 pts/1 00:00:00 ps -ef
oracle 13773 13206 0 12:01 pts/1 00:00:00 grep oracle -
lakisoft
veterán
Gondolom ez nem teljesen jó így
.
./lsnrctl status
LSNRCTL for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 11:53:52
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Message 1053 not found; No message file for product=network, facility=TNSMessage 1020 not found; No message file for product=network, facility=TNSMessage 1021 not found; No message file for product=network, facility=TNSMessage 1022 not found; No message file for product=network, facility=TNSMessage 1023 not found; No message file for product=network, facility=TNSMessage 1026 not found; No message file for product=network, facility=TNSMessage 1034 not found; No message file for product=network, facility=TNSMessage 1024 not found; No message file for product=network, facility=TNSMessage 1025 not found; No message file for product=network, facility=TNSMessage 1040 not found; No message file for product=network, facility=TNSMessage 1422 not found; No message file for product=network, facility=TNSMessage 1033 not found; No message file for product=network, facility=TNSMessage 1028 not found; No message file for product=network, facility=TNSMessage 1415 not found; No message file for product=network, facility=TNS Message 1050 not found; No message file for product=network, facility=TNS
Message 1050 not found; No message file for product=network, facility=TNS
Message 1050 not found; No message file for product=network, facility=TNS
Message 1029 not found; No message file for product=network, facility=TNSMessage 1411 not found; No message file for product=network, facility=TNS
Message 1408 not found; No message file for product=network, facility=TNS
Message 1411 not found; No message file for product=network, facility=TNS
Message 1408 not found; No message file for product=network, facility=TNS
Message 1411 not found; No message file for product=network, facility=TNS
Message 1408 not found; No message file for product=network, facility=TNS
Message 1052 not found; No message file for product=network, facility=TNS./tnsping
TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 11:57:10
Copyright (c) 1997, 2011, Oracle. All rights reserved.
TNS-03502: Message 3502 not found; No message file for product=network, facility=TNS
-bash-4.1$ ./trcroute
Trace Route Utility for Linux: Version 11.2.0.2.0 - Production on 29-JUL-2014 11:57:31
Copyright (c) 1995, 2011, Oracle. All rights reserved.
TNS-03602: Message 3602 not found; No message file for product=network, facility=TNS
-bash-4.1$ -
lakisoft
veterán
Más lesz a gond?
Mely config fileok kellenek az adatbázis működéséhez?
listener.ora és tnsnames.ora elég vagy kell az sqlnet.ora is?
Server: Oracle Enterprice Linux 6 update 5 64 bit
Client: Windows 7 32 bit# listener.ora Network Configuration File:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = hostnév)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)# tnsnames.ora Network Configuration File:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = hostnév)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
) -
lakisoft
veterán
1. variáció volt a gond:
SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 29 09:28:06 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Use "connect username/password@XE" to connect to the database.
SQL> connect / as sysdba
Connected.
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> connect system/x@XE
Connected.
SQL>Hogyan tovább?
-
bpx
őstag
válasz
lakisoft #646 üzenetére
Ok, én 2 lehetőséget látok.
1. Az adatbázis NOMOUNT állapotban van, ilyenkor dinamikus listener regisztrációnál BLOCKED állapotú lesz a service státusza, ez egy "lsnrctl status" kimenetből látszik is. Az adatbázisban a select status from v$instance ha azt írja, hogy started, akkor ez van.
Az adatbázist el kellene indítani:
sqlplus / as sysdba
SQL> alter database mount;
SQL> alter database open;2. Az adatbázis elérte a maximálisan indítható processzek számát, de ott inkább TNS-12518 lenne a hiba TNS-12528 helyett és ebben az esetben SYSDBA-val sem tudnál belépni, szóval szerintem nem ez a helyzet.
Az adatbázis viszont magától nem kerül NOMOUNT-ba, gondolom megpróbáltátok indítani a DB-t az init.d scripttel, vagy reboot után megpróbált automatikusan elindulni, és ennél a lépésnél elakadt. A MOUNT akkor nem szokott menni, amikor a controlfile-okkal van gond (hiányoznak, korruptak), ezt ki kellene írnia az "alter database mount" kiadásakor, vagy az alertlogban.
-
lakisoft
veterán
válasz
lakisoft #639 üzenetére
SQL*Plus: Release 11.2.0.2.0 Production on Tue Jul 29 06:21:32 2014
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Use "connect username/password@XE" to connect to the database.
SQL> connect system/x@XE
ERROR:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
SQL>SQL> connect dbuser01/x@XE
ERROR:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections
SQL> -
lakisoft
veterán
1. megoldás:
SQL> select trunc(months_between(sysdate,dob)/12) year,
2 trunc(mod(months_between(sysdate,dob),12)) month,
3 trunc(sysdate-add_months(dob,trunc(months_between(sysdate,dob)/12)*12+trunc(mod(months_between(sysdate,dob),12)))) day
4 from (Select to_date('15122000','DDMMYYYY') dob from dual);
YEAR MONTH DAY
---------- ---------- ----------
9 5 26
SQL>2. megoldás:
SELECT TRUNC(
MONTHS_BETWEEN(
SYSDATE,
CASE TO_CHAR(birthdate,'MMDD')
WHEN '0229' -- born on February 29
THEN CASE TO_CHAR(TRUNC(SYSDATE,'YYYY') + 59,'MMDD')
WHEN '0229'-- current year is leap year
THEN birthdate
ELSE birthdate - 1 -- if person was born on February 29 and current year is not a leap year
END -- we will consider person was born on February 28
ELSE birthdate
END
) / 12
) age
FROM tbl3. megoldás:
SELECT FLOOR((SYSDATE - (ADD_MONTHS(SYSDATE,-22)+1))/365) YEARS,
MOD( (SYSDATE - (ADD_MONTHS(SYSDATE,-22)+1)),365) DAYS
FROM DUAL4. megoldás:
select
trunc((to_number(to_char(sysdate,'yyyymmdd'))
-to_number(to_char(date '2002-12-07','yyyymmdd'))
)/10000) as "age of this thread"
from dual; -
Ablakos
őstag
Adott egy születési dátum. Abból szeretném megmondani, hogy hány éves, hány hónapos, hány napos a személy. Van erre okos beépített fv. vagy darabolással kell kibütykölni az eredményt?
-
bpx
őstag
válasz
lakisoft #637 üzenetére
De itt SYSDBA logint csináltál, és nem SYSTEM-et. Amikor az adatbázis szerveren oracle userrel azt mondod sqlplus-ban, hogy as sysdba, ott OS autentikációt használ (azt nézi, tagja vagy-e a dba groupnak), tehát a user-name és password-höz írhatod azt is hogy ingyom/bingyom, nem számít, beenged bármivel. Ha a fenti módszerrel lépszbe, és mondasz egy "show user"-t, azt fogja mondani, hogy SYS.
SYSTEM-mel kellene belépni: connect system -
lakisoft
veterán
local system login megy.
SQL> connect as sysdba
Enter user-name: system
Enter password:
Connected.# listener.ora Network Configuration File:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/xe)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle.co.wer)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)# tnsnames.ora Network Configuration File:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle.co.wer)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
) -
lakisoft
veterán
Na akkor menjünk lépésről lépésre.
hibaüzenet SQLDeveloperben ez:
An error was encountered performing the requested operation:
ORA-01031: insufficient privileges
01031. 00000 - "insufficient privileges"
*Cause: An attempt was made to change the current username or password
without the appropriate privilege. This error also occurs if
attempting to install a database without the necessary operating
system privileges.
When Trusted Oracle is configure in DBMS MAC, this error may occur
if the user was granted the necessary privilege at a higher label
than the current login.
*Action: Ask the database administrator to perform the operation or grant
the required privileges.
For Trusted Oracle users getting this error although granted the
the appropriate privilege at a higher label, ask the database
administrator to regrant the privilege at the appropriate label.
Vendor code 1031 -
bpx
őstag
válasz
lakisoft #632 üzenetére
Igazából azt is leírhatnád mi a hiba, mert ez pl. tök felesleges, hiszen a SYSTEM ezzel eleve rendelkezik, és alapértelmezett esetben semmit nem kell csinálni, hogy a SYSTEM-mel menjen a távoli belépés. Feltételezem listener fut és az adatbázis be van regisztrálva, hiszen valahogy a usereknek is be kell tudni lépni.
-
bpx
őstag
válasz
lakisoft #628 üzenetére
SYS vagy SYSTEM?
A SYSTEM-ben nincs semmi különleges, ugyanúgy be lehet lépni vele, mint hagyományos userrel.
A SYS már más, hiszen ő az atyaúristen. A SYS-hez a remote_login_passwordfile paraméter értéke shared vagy exclusive kell legyen. Ha none-ra van állítva, akkor a változtatáshoz DB restart kell.
Ezen kívül létre kell hozni egy password file-t, mert távoli SYSDBA loginnál azon keresztül megy az autentikáció. pl.:
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=atomtitok
Végül a loginnál be kell lépni hogy ne normál userként, hanem SYSDBA-ként lépjen be.
-
lakisoft
veterán
Hogyan kell az megoldani hogy a system user tudjon távolról csatlakozni. Csak tesztrendszeren kell és csak kényelmi okai vannak.
-
MrSealRD
veterán
válasz
adalbert1 #626 üzenetére
VMware alatt nálam működik a compact funkció. Virtualbox alatt még nem használtam...
Mondjuk amióta volt szerencsém CentOS core minimal (core) verzióhoz...azóta nagyon azt preferálom. Az kb 1-2 GB körül mozgott egy telepített Nagios-al. Oracle-t még nem raktam rá, azzal nem tudom mennyi lenne.
Oracle Linux-ból elvileg van készre gyártott virtualbox image...de most hirtelen nem tudom mekkorák.
-
adalbert1
veterán
válasz
MrSealRD #625 üzenetére
Főleg azt figyelembe véve, hogy az Oracle Linux is ingyenes, ha jól tudom (csak a support fizetős)...
Ha már itt tartunk, mi a legkisebb helyigényű virtuális gép (Virtual Box-ot használva és OEL-ot telepítve rá), amire fel lehet tenni az XE-t? Valamelyik nap el fogok játszadozni ezzel, csak az a probléma, hogy ha jól olvasom a Virtualbox a dinamikusan allokált helynél nem szabadítja fel a már nem használt helyet, hanem utólagosan kell még dolgozni vele. -
lakisoft
veterán
Tudnátok működő leírás adni Debian 6 vagy 7-hez Oracle DB 11g-től felfelé?
Egyáltalán létezik ilyen ami teljes értékűen működik?
-
Nyx89
aktív tag
Attól függ, mennyi cursor van, milyen arányú a nyitott cursorok száma a többi session számához képest, és hogy mennyiben hasonlóak ezek. Nyílván több dolgot is befolyásolhat, PGA, SGA egyaránt(egy szóval memória)
Alap esetben én a lezárás kikényszerítését szoktam javasolni. Mivel ez egy elég régi rendszer, tul sokat nem lehet(nem éri meg) már kihozni belőle, zárogasd be. Vagy ha van az alkalmazás szintjén valamilyen session pooling, old meg ott globálisan.
-
D@ni88
addikt
Az nagyon nagy probléma ha az alkalmazás futtatása során nem zárjuk le a selecteket, ezért az open cursor számlázó szépen kúszik felfele?
Jelenthet ez egy idő után teljesítmény csökkenést? -
MrSealRD
veterán
Adott egy cursor ami visszaadja egy adott csomag eljárásait. Amikor ezeket feldolgozom mindegyik egy fájl generálásáért felel. Az egyik eljáráson belül viszont van egy select mert egy másik fájlt is belegenerál amit egy táblából kérdezek le.
Ennél az egynél elszáll ORA-22275: invalid LOB locator specified.Értem, hogy mi a gondja, csak megoldást nem találtam rá. Cursor-on belül kellene az adott eljáráson belül egy másik cursor? Mi ilyenkor az elegáns megoldás?
-
peterszky
őstag
Hátha valaki jártasabb egy kicsit a WebLogic (10.3.6) világában:
Van egy ear fájlom, benne egy war-ral, amiben a WEB-INF/web.xml tartalmaz egy bejegyzést, amit környezetek szerint felül kellene írni.
2.5 web-app xml
<env-entry>
<env-entry-name>dsn</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>jdbc/tesztDSN</env-entry-value>
</env-entry>plan.xml
<?xml version='1.0' encoding='UTF-8'?>
<deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false">
<application-name>A</application-name>
<variable-definition>
<variable>
<name>dsn</name>
<value>jdbc/ujTesztDSN</value>
</variable>
</variable-definition>
<module-override>
<module-name>B.war</module-name>
<module-type>war</module-type>
<module-descriptor external="false">
<root-element>web-app</root-element>
<uri>WEB-INF/web.xml</uri>
<variable-assignment>
<name>dsn</name>
<xpath>/web-app/env-entry/env-entry-name/</xpath>
<operation>replace</operation>
</variable-assignment>
</module-descriptor>
</module-override>
</deployment-plan>Ez lement (admin konzolban update a deployolt alkalmazásra), de hogy a dsn bejegyzés nem változott meg, az tuti, mivel továbbra is működik, pedig nem kellene.
-
bpx
őstag
Ez így azért nem jó, mert nem az update-ben van a where, ezért a table1 összes sorát update-eli, és azoknál a soroknál, amelyek table1-ben és table2-ben az erv_vege egyezik az erv_vege értéke null lesz, mivel az allekérdezés ott nem eredményt.
Ha már update, akkor pl. így:
update table1 o
set o.erv_vege = (select c.erv_vege from table2 c where o.id = c.id)
where o.erv_vege != (select c.erv_vege from table2 c where o.id = c.id);Ezzel az a gond, hogy nem optimális, feleslegesen dolgozik. Az Oracle nem engedi az update table1, table2, ... szintaktikát, ilyesmire a merge használható. Az eredeti merge azért nem jó ugye, mert az onban levő oszlopot szeretnéd update-elni, de ettől még lehet ezt merge használatával, ami jobb, mint a fenti update:
merge into table1 o
using table2 c
on (o.id = c.id)
when matched then
update set o.erv_vege = c.erv_vege
where o.erv_vege != c.erv_vege; -
Ablakos
őstag
Jó ez az átalakítás (mergeről update-ra) ?
MERGE INTO table1 o
USING (
SELECT
id,
erv_vege
FROM
table2
) c
ON (
o.id = c.id AND
o.erv_vege != c.erv_vege
)
WHEN MATCHED THEN
UPDATE
SET
o.erv_vege = c.erv_vege;
**************************************************************
Update table1 o
Set o.erv_vege = (SELECT
c.erv_vege
From countries c
Where o.id = c.id
And o.erv_vege != c.erv_vege;
) -
peterszky
őstag
Egy kis miért szeretjük az átállásokat történet
Ugye május/június tájékán szűnik meg az iAS support, ezért bizonyos helyeken fontos kérdés a WebLogic szerverre való áttérés. Böngészed az Oracle doksikat, hogy mi-milyen-melyik verzióval működik. Ez alapján nekiállsz. Aztán jön a valóság.
A Fusion Middleware 11gR2 Java 1.7-re hitelesítve van. Igen ám, de a Reports alkalmazásban található egy olyan függvény (képkezelés), ami régóta deprecated volt, az 1.7-es verzióból pedig már ki is törölték.
Köszönjük!
Új hozzászólás Aktív témák
- Dell Inspiron 5406 2-in-1i5-1135G7 16GB DDR4 3200 512GB NVME 14" FHD Érintőkijelző W11Pro
- Eladó MacBook Pro 14" M1 Pro (2021) 16/512 99% akku Makulátlan állapotban!
- Újszeru GIGABYTE G5 - 15.6" FullHD 144Hz - i7-13620H - 48GB - 1TB - RTX 4050 - Win11 - 1,5 év gari
- Eladó garanciás,új állapotu projektorom kihasználatlanság miatt!
- Acer Nitro V ANV15 - 15.6"FHD IPS 144Hz - i5-13420H - 16GB - 512GB - Win11 - RTX 3050 - 2,5 év gari
- LG 45GS95QE - 45" Ívelt OLED / 2K WQHD / 240Hz 0.03ms / NVIDIA G-Sync / FreeSync Premium / HDMI 2.1
- DDR3 BAZÁR! 8GB 16GB 1333MHz 1600MHz 2400MHz DDR3 memória garanciával hibátlan működéssel
- ÁRGARANCIA! Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7800 XT 16GB GAMER PC termékbeszámítással
- Samsung Galaxy A04 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Gigabyte B760M i5 13400F 16GB DDR4 512GB SSD RTX 3070 8GB Pure Base 500DX fehér 650W
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest