Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Oracle topic

Hozzászólások

(#251) Lortech válasza Relisys (#250) üzenetére


Lortech
addikt

Nyelvet állítottál ? Mi a hiba ?

Thank you to god for making me an atheist

(#252) Parameter válasza Relisys (#250) üzenetére


Parameter
csendes tag

Hello!
kerekített dátumformátum... pl.: '98.március.12.
rootként vagy benn a rendszerben és úgy adtad ki alter sessiont?
Nyelvi beállítások lekérdezése...
SELECT * FROM NLS_SESSION_PARAMETERS;

[ Szerkesztve ]

(#253) Relisys válasza Lortech (#251) üzenetére


Relisys
senior tag

Alapba magyar van beállítva.

(#254) Relisys válasza Parameter (#252) üzenetére


Relisys
senior tag

systemként próbáltam kiadni a parancsot, de látszólag le is futott rendesen.

Ezek a beállítások:

NLS_LANGUAGE HUNGARIAN
NLS_TERRITORY HUNGARY
NLS_CURRENCY Ft
NLS_ISO_CURRENCY HUNGARY
NLS_NUMERIC_CHARACTERS ,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT RR-MON-DD
NLS_DATE_LANGUAGE HUNGARIAN
NLS_SORT HUNGARIAN
NLS_TIME_FORMAT HH24.MI.SSXFF

Ja és még egy kérdés:

Ha van egy SQL scriptem amivel töltöm fel a táblákat, akkor egy csomó helyen nem ismeri fel az ékezeteket és helyette fordított kérdőjeleket tesz be a táblába:S
Például így:
insert into mkonyv values('Sz¿el-l¿kkel f¿zni', 'Kylie Kwong',2008);
Unicode UTF8-ként töltöttem fel a scriptet.

(#255) Lortech válasza Relisys (#253) üzenetére


Lortech
addikt

Akkor már csak a lényeg hiányzik, az sql és a ora hibakód.

Thank you to god for making me an atheist

(#256) Relisys válasza Lortech (#255) üzenetére


Relisys
senior tag

Épp ez az, nincs semmi hibakód.

(#257) Lortech válasza Relisys (#256) üzenetére


Lortech
addikt

Úgy tűnt a leírásból, hogy a dátumot tartalmazó insert nem fut le ("sose fogadja el"), míg az alter session lefut. Hát ez így érdekes.

Thank you to god for making me an atheist

(#258) Relisys válasza Lortech (#257) üzenetére


Relisys
senior tag

Dátumos dolgot megoldottam. Azt hittem az ékezetest kérdezed.

(#259) Relisys


Relisys
senior tag

Hello!

Egy újabb problémám merült fel.
Kitöröltem az első oldalt az egyik általam készített alkalmazásból és mikor a "run application" -re megyek akkor hibaüzenetet dob ki. 'Page 1 not found'.
Gondolom van valami referencia az első oldalra (de nem általam beállított, mert azt tudnám).
Van valakinek esetleg tippje?

(#260) Relisys válasza Relisys (#259) üzenetére


Relisys
senior tag

Nah..senki se tudja?:S

(#261) Relisys válasza Relisys (#260) üzenetére


Relisys
senior tag

Köszi, már megoldódott.

(#262) Yom


Yom
aktív tag

Sziasztok!
Egy olyan kérdésem lenne, hogy olyat hogyan lehetne csinálni:
Van 1 adatbázisom a helyi gépen (xe) és 1 távoli adatbázis (teljes). Létrehoztam 1 database linket a helyi adatbázison és egy nézettáblát amiben 1 helyi tábla és 1 távoli tábla adatai szerepelnek (union-nal). Ez működik is, de a gond akkor van, amikor a távoli server nem elérhető. Ilyenkor lehal a nézettábla:
ORA-12545: Connect failed because target host or object does not exist
Azt hogyan lehetne megoldani, hogy amikor a távoli server offline akkor is működjön a nézet? (a nézetben ne szerepeljenek annak az adatai) Gondoltam job-ra ami futna mondjuk percenként és ha nem elérhető a távoli gép akkor a database linket magára állítaná. Csak megvalósítani nem sikerült :(.
Lenne esetleg valami ötletetek, hogyan lehetne ezt megoldani?
Köszi: Yom

I came. I saw. I lagged out.

(#263) bpx válasza Yom (#262) üzenetére


bpx
őstag

PL/SQL + kivételkezelés?

(#264) Yom válasza bpx (#263) üzenetére


Yom
aktív tag

Na ezt már sikerült megoldani, már csak egy olyan problémám van, hogy view-nál nem tudom megadni feltételhez legyen kötve a lekérdezés:

SELECT
*
FROM
"Local"
if (Select Test_dbLink() from Dual) IS NOT NULL then
UNION
SELECT
*
FROM
"DBLink"
end if;

ilyenkor:
ORA-00933: SQL command not properly ended
00933. 00000 - "SQL command not properly ended"
*Cause:
*Action:

where feltételbe téve (select * from "DBLink" where (Select Test_dbLink() from Dual) IS NOT NULL) nem jó, mert mire teszteli a kapcsolatot, addigra már olvasna a távoli táblából.

valami feltételhez kötött view-t hogyan lehetne csinálni?

I came. I saw. I lagged out.

(#265) rum-cajsz válasza Yom (#264) üzenetére


rum-cajsz
őstag

én inkább materializált nézetet használnék ehhez a feladathoz.

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#266) ibazsb


ibazsb
tag

Sajnálom hogy ennyire halott a topic.
Oracle licencekkel kapcsolatos kérdésekben tud vki segíteni?

A megkérdezettek közel egyharmada egyetért, viszont a többit nem érti. Az egyharmad azt az egyet se érti.

(#267) lakisoft


lakisoft
veterán

Nem teljesen témába vágó dolog de gondoltam hátha valakinek hasznos lesz:
Oracle DB 11g XE telepítése Debian 6.0-ra:

# install necessary packages
apt-get install alien bc libaio1

# convert the file including scripts
alien --to-deb --keep-version --scripts oracle-xe-11.2.0-0.5.x86_64.rpm

# create the user and directory (suse-specifics in scripts, not working with debian... I assume somebody with more experience with package conversion could fix this)
mkdir -p /u01/app
groupadd dba
/usr/sbin/useradd -m -g dba -d /u01/app/oracle -s /bin/bash oracle
touch /sbin/chkconfig; chmod u+x /sbin/chkconfig

# 2. install
dpkg --install oracle-xe_11.2.0-0.5_amd64.deb

# 3. configure
/etc/init.d/oracle-xe configure

nyilván a verziószámok megfelelően helyettesítendők.
Jelenleg: oracle-xe-11.2.0-1.0.x86_64.rpm.
Oracle Enterprice Linux 5 update 2-on tökéletesen megy minden különösebb konfigolás nélkül is.

Részletek itt olvashatók

(#268) emmm


emmm
senior tag

Sziasztok!

Szeretnék egy olyat lekérdezni oracle-ben, hogy keressük azokat a termékeket, amelyeknél az adott termékhez tartozó címke nevében szerepel a márka neve.

Ez a mező így néz ki, pl:
ADIDAS tusfürdő akármileírás 250 ml

És van egy külön mező a márkára, amiben szerepel az ADIDAS.

A gondom az, hogy sima LIKE paranccsal nem tudom azt lekérdezni, hogy egy mező adatát keresse meg a szövegben. Van erre valami megoldás?

Előre is köszönöm!

(#269) emmm válasza emmm (#268) üzenetére


emmm
senior tag

Közben rájöttem :)

(#270) lakisoft válasza emmm (#269) üzenetére


lakisoft
veterán

Ha valakinek gondja lenne vele akkor ezek segíthetnek:
Select-re kihegyezett anyag:
http://psoug.org/reference/select.html
Like-ra kihegyezett anyag:
http://www.techonthenet.com/sql/like.php

(#271) lakisoft


lakisoft
veterán

XE alatt hogyan írtanátok ki a HR minta adatbázis-t.

(#272) rum-cajsz válasza lakisoft (#271) üzenetére


rum-cajsz
őstag

eldobod a felhasználót?

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#273) lakisoft válasza rum-cajsz (#272) üzenetére


lakisoft
veterán

És vele együtt törlődik a hozzá tartozó schema és minden adat?

(#274) lakisoft


lakisoft
veterán

Ezzel kezdtem:

SQL> DROP USER HR CASCADE;

User dropped.

UTF8-ra szeretném konvertálni az adatbázis karakterkészletét. De egyszerűen nem sikerül mindig ugyan azzal a hibaüzenettel száll el:

SQL> connect as sysdba
Enter user-name: system
Enter password:
Connected.
SQL> SHUTDOWN IMMEDIATE;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP MOUNT;
ORACLE instance started.

Total System Global Area 392495104 bytes
Fixed Size 2226840 bytes
Variable Size 171967848 bytes
Database Buffers 213909504 bytes
Redo Buffers 4390912 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

System altered.

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

System altered.

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

System altered.

SQL> ALTER DATABASE OPEN;

Database altered.

SQL> ALTER DATABASE CHARACTER SET AL32UTF8;
ALTER DATABASE CHARACTER SET AL32UTF8
*
ERROR at line 1:
ORA-12716: Cannot ALTER DATABASE CHARACTER SET when CLOB data exists

Mi lehet a gond?

[ Szerkesztve ]

(#275) márNemKereső válasza lakisoft (#274) üzenetére


márNemKereső
tag

Karakterkészletet csak export/importtal tudsz átállítani (hacsak nem változott valami e téren a 9i-10g óta)
Bár a hibaüzenetből úgy tűnik, talán mégis változott.

[ Szerkesztve ]

(#276) márNemKereső válasza lakisoft (#274) üzenetére


márNemKereső
tag

Kicsit jobban megnézve: a hibaüzeneted alapján a nálad futó verzió nem engedi a karakterkészlet változtatását, ha az adatbázisod tartalmaz CLOB típusú oszlopokat.
Ha lekéred a dba_tab_columns nézetből azokat a sorokat, amelyekben a DATA_TYPE='CLOB', akkor látni fogod, hogy a SYS tulajdonában rengeteg ilyen tábla van. (nálam egy patch-eletlen 10.2 fut, abban nagyon sokat találtam)

Az egyetlen, amit szerintem tehetsz, ha exportálod, létrehozol egy üres adatbázist a megfelelő karakterkészlettel és importálod.

(#277) lakisoft válasza márNemKereső (#276) üzenetére


lakisoft
veterán

uhh nálam is van bőven 566-at talált :(.
Szerintem is export/import lesz belőle mert így nem fogok boldogulni.
Azzal szerintem is működnie kell.

Köszi szépen a tippet. Hasznos volt. :C

[ Szerkesztve ]

(#278) rum-cajsz válasza lakisoft (#277) üzenetére


rum-cajsz
őstag

Én is az export/importot javaslom. Ha nagy az adatbázisod, akkor a datapump-ot (expdp).

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#279) lakisoft válasza rum-cajsz (#278) üzenetére


lakisoft
veterán

Köszönöm a tippet. Mivel adatot még nem tartalmazott így arra döntöttem hogy a createdb.sh-t újra futtatom abban átírtam a karakterkészetet UTF8-ra. Hátha így már jó lesz ha nem akkor addig csinálom míg jó nem lesz. Ez nagyon fájdalmas dolog :).

[ Szerkesztve ]

(#280) lakisoft válasza lakisoft (#279) üzenetére


lakisoft
veterán

jajj. a gyári createdb.sh-t futtattam le - amiben az előző gatya karakterkészlet volt :(
újra próba :D

(#281) lakisoft válasza lakisoft (#280) üzenetére


lakisoft
veterán

Bevált a megoldás :).

Viszont van újabb probléma:

Ez mitől van:

Recovery Manager: Release 11.2.0.2.0 - Production on Wed Oct 19 21:19:27 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

RMAN> show all;

using target database control file instead of recovery catalog
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of show command at 10/19/2011 21:19:36
RMAN-06171: not connected to target database

(#282) lakisoft


lakisoft
veterán

És egy másik probléma:

oracle@server1:/u01/app/oracle/product/11.2.0/xe/bin$ exp full=Y

Export: Release 11.2.0.2.0 - Production on Wed Oct 19 22:13:44 2011

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.


Username: system
Password:

EXP-00056: ORACLE error 1017 encountered
ORA-01017: invalid username/password; logon denied

Mit csináltam rosszul?

(#283) rum-cajsz válasza lakisoft (#282) üzenetére


rum-cajsz
őstag

1. Az "as sysdba" kapcsoló maradt le.
exp 'userid="/ as sysdba"' full=y
vagy
exp \'/ as sysdba\' full=y

2. exp helyett javaslom az expdp progit. Ez a korszerű exportáló ma már.
expdp 'userid="/ as sysdba"' full=y

3. Az RMAN-hoz nem értek sajnos. Mire akarod használni? Ez egy elég új dolog még, nem tudom mennyire kiforrott.

[ Szerkesztve ]

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#284) lakisoft válasza rum-cajsz (#283) üzenetére


lakisoft
veterán

Köszi szépen az exp nekem tökéletesen elegendő volt.
A 10g óta biztosan van RMAN, pontosan nem tudom mióta létezik.
Az RMAN-t backup-ra akarom használni és recovery-re ha szükséges.

[ Szerkesztve ]

(#285) bpx


bpx
őstag

RMAN már 8-as Oracle óta van, szóval egyáltalán nem új dolog, és teljesen kiforrott, az rman A backup
kétféle backup/recovery módszer létezik egyébként:
user managed, és RMAN - ebből az utóbbit használják 99%-ban

lakisoft:

rman-t csak elindítottad, de nem csatlakoztál az adatbázishoz, így a show all nem tudja lekérdezni a controlfile-ból a paramétereket

rman target /

282,283# azért ne keverjük a dolgokat

SYSTEM jelszót rosszul adta meg
a SYSTEM-nek köze nincs a SYSDBA jogosultsághoz
a "/ as sysdba" az SYS userként fog belépni

[ Szerkesztve ]

(#286) lakisoft válasza bpx (#285) üzenetére


lakisoft
veterán

Köszi az infót. Én csak lelkes amatűr vagyok Oracle téren. Ám szorgalmas.

(#287) rum-cajsz válasza bpx (#285) üzenetére


rum-cajsz
őstag

kösz a pontosítást!

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#288) Ablakos


Ablakos
őstag

Mi a magyarázata, hogy két tábla összekapcsolásnál, amelyik táblát outerrel kapcsolom és konstanssal is akarom szűrni ezt a táblát, akkor elvesznek rekordok, ha nem outerrel kapcsolom a konstanst is?

select a,*,b.* from a,b where a.id(+) = b.id and a.name(+) = 'talmi'

(#289) rum-cajsz válasza Ablakos (#288) üzenetére


rum-cajsz
őstag

A második + azért nem kell, mert az nem join, hanem reláció.

select a,*,b.* from a,b where a.id(+) = b.id and a.name = 'talmi';

=Kilroy was here============================ooO=*(_)*=Ooo=======

(#290) Ablakos válasza rum-cajsz (#289) üzenetére


Ablakos
őstag

:(((

[ Szerkesztve ]

(#291) peterszky


peterszky
őstag

Egy érdekes kérdésem lenne dátum/timestamp konverzióknál használt format maskok működéséről, lehet, hogy csak én nem látom a logikát benne egyelőre.

Oracle leírás: [link]

SELECT to_date('02/01/01', 'YY/MM/DD') FROM DUAL;
Ez azt adja, amit vártam, 2002-01-01. YY az utolsó két digitet állítja, az első kettőt az aktuális évből veszi (2011)

Az is tiszta, ha a YY digiteknek csak egy hosszú adatot adok, akkor a szabad helyre nullát tesz. Példa:
SELECT to_date('11/01/01', 'YY/MM/DD') FROM DUAL;
-> 2011-01-01
SELECT to_date('1/01/01', 'YY/MM/DD') FROM DUAL;
-> 2001-01-01

Ezek működnek YYYY, YYY, YY-vel, Y-nél ugye nem lehet kevesebbet, az már hiba. A leírás szerint többet egyik sem fogad el. Ez YYYY / YYY / Y esetében igaz is. Viszont YY esetén nem!

SELECT to_date('111/01/01', 'YY/MM/DD') FROM DUAL;
-> 0111-01-01
Látszólag olyan, mintha YYYY maszkot használnék három digittel és ezt nem értem, hogy miért van így, ötletek?

[ Szerkesztve ]

What else you gonna do on a Saturday?

(#292) bpx válasza peterszky (#291) üzenetére


bpx
őstag

pedig le van írva ez is ugyanitt: [link]

"If a match fails between a datetime format element and the corresponding characters in the date string, then Oracle attempts alternative format elements, as shown in Table 2-18."

és ott van hogy a YY-t YYYY-ra cseréli

(#293) peterszky válasza bpx (#292) üzenetére


peterszky
őstag

Ó, hogy az a... :) Köszönöm!

What else you gonna do on a Saturday?

(#294) peterszky


peterszky
őstag

Oracle 10g XE-t be lehet úgy állítani, hogy magyar karakterkészletet használjon? Az alap telepítés (apt-get install + Oracle által biztosított csomag) közben ilyen beállításra nem emlékszem. Ahogy olvastam, második adatbázist létrehozni nem lehet, mivel ez az XE egyik korlátja.

What else you gonna do on a Saturday?

(#295) bpx válasza peterszky (#294) üzenetére


bpx
őstag

arra az adatbázisra amit alapból létrehoz, nincs lehetőség ezt megmondani

újabb adatbázist lehet létrehozni, ha az ember tudja a módját (manuálisan), de egyszerre csak 1 adatbázis futhat
én pl. most simán csináltam egy újabb XE adatbázist magyar (ee8iso8859p2) karakterkészlettel

de ugyanezzel a módszerrel az eredeti adatbázis is újra létrehozható más karakterkészlettel, és akkor még új sem kell

(#296) peterszky válasza bpx (#295) üzenetére


peterszky
őstag

Ez utóbbira tudnál adni egy kis útmutatást, ha lesz majd időd/kedved?

What else you gonna do on a Saturday?

(#297) bpx válasza peterszky (#296) üzenetére


bpx
őstag

XE-ben a default adatbázis UTF8 kódolású, amiben hibátlanul működnek a magyar ékezetes karakterek is
ha nálad mégsem (és ezért akarsz karakterkészletet váltani), akkor nem ez a gond

ha mégis ragaszkodsz a magyar/kelet-európai karakterkészlethez (ee8iso8859p2), kb. ezt kell végigcsinálni egy kicsit máshogy [link]

- a mostani adatbázisból controlfile-ból kell egy "szöveges" változat

export ORACLE_SID=XE
sqlplus / as sysdba
SQL> show parameter user_dump_dest
SQL> alter database backup controlfile to trace;

a user_dump_dest egy könvytár, és oda létrejön egy XE_ora_... nevű fájl (dátum szerint valószínűleg a legújabb, saját nevet nem lehet adni neki) amiben lesz egy 'CREATE CONTROLFILE...' több soron keresztül tartó parancs

- mostani db leállít
- step 1-2-3-4-5 felesleges ha ugyanolyan nevű db-t szeretnél
- step 6: startup nomount
- step 7: össze kell rakni egy CREATE DATABASE parancsot mint a doksiban és lefuttatni, ehhez segítség az elején létrehozott fájl
mivel az adatfájlok, redo logok már megvannak a fájlok méreteinek megadása után még kell egy REUSE is (így felülírja a régieket) + a CREATE DATABASE xe után még kell egy CONTROLFILE REUSE is, hogy azt is tudja, hogy felülírhatja
alternatív lehetőség: törlöd az összes fájlt (ami fel van sorolva a korábban generált fájlban) és nem kell a REUSE-zal foglalkozni
a CREATE DATABASE-ben van egy olyan opció hogy CHARACTER SET, ezután kell beírni amilyet szeretnél (ee8iso8859p2 - Kelet-Európa, ebben van a magyar)
- step 8: opcionális
- step 9: ezt mindenképp csináld meg
- step 10-11: opcionális

szerk: ezzel egy teljesen új, üres adatbázisod lesz
a régi adatbázisból ha kell adat exportáld ki, majd az újba importáld be

[ Szerkesztve ]

(#298) peterszky válasza bpx (#297) üzenetére


peterszky
őstag

Először is köszönöm a részletes leírást!

Most értem haza, így megnéztem, amit elsőnek írtál, a karakterkódolást, ami valóban az. Eddig csak a webes felületen néztem a próba lekérdezést, aminél az ékezetes karakterek helyén két kérdőjel jelent meg, ezért tippeltem arra, hogy emiatt nem stimmel valami, így utólag látom, hogy hibásan.

Most megnéztem terminálban az SQLPlus-szal, ott minden rendben. Még nem volt fent, ezért letöltöttem az Oracle SQL Developert is, amin pedig újból a kérdőjelek fogadtak.

Lehet, hogy az NLS paraméterek körül van valami gond (az adatbázis alaból amerikai beállításokat tartalmaz) vagy csak én néztem el valamit ismét?

SELECT * FROM nls_database_parameters;

NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0

What else you gonna do on a Saturday?

(#299) bpx válasza peterszky (#298) üzenetére


bpx
őstag

akkor ez csak kliens oldali probléma, az NLS_LANG környezeti változót kell jól beállítani [link]

(#300) peterszky válasza bpx (#299) üzenetére


peterszky
őstag

Sikerült, természetesen megint én voltam a figyelmetlen... :)

Most jól beállítottam az NLS_LANG-ot, így már minden jól működik.

"hungarian_hungary.UTF8" volt a barátom.

Köszönöm a segítséget :R

What else you gonna do on a Saturday?

Útvonal

Fórumok  »  Szoftverfejlesztés  »  Oracle topic
Copyright © 2000-2024 PROHARDVER Informatikai Kft.