Fórum Root.cz

Hlavní témata => Software => Téma založeno: lubokla 20. 10. 2010, 08:33:18

Název: Oracle connect c++ / Linux
Přispěvatel: lubokla 20. 10. 2010, 08:33:18
Zdravím ,
pracujem dlhší čas pod Fedorou12 v ktorej programujem pod Eclipsom ( Galileo ) .
Používam pripojenie na Oracle / Mysql . Všetko fungovalo ako malo , ale keď som po víkende skúšal skompilovať program , Eclipse nemohol nájsť tnsnamesi.
( ORA-12154: TNS:could not resolve the connect identifier specified )
Na pripojenie k Oraclu používam Oracle Instant Client + SQLAPI .
Cez terminál pomocou testovacieho programu priamo od  SQLAPI sa ale pripojím normálne.
Predpokladám ,že to bude iba nejaké nastavenie v Eclipse , aj keď doteraz som tam nič extra nemusel nastavovať. Knižnice / Tnsnamesi / Systémove premenné sú správne.
Doteraz to fungovalo normálne , tak neviem v čom môže byť chyba. Skúšal som už aj reinstall ale nepomohol.
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Roman 20. 10. 2010, 10:18:33
Ved vam jasne pise, ze nevie najst tnsnames.ora .... takze tam by som hladal cestu. Tnsnames.ora je subor, kde su definovane aliasy na Oracle DB. Pozrel by som premenne pre ORACLE_HOME ....
R
Název: Re: Oracle connect c++ / Linux
Přispěvatel: lubokla 20. 10. 2010, 10:39:52
Ako som napísal , TNSNAMES.ORA sú na svojom mieste a systémová premenná ORACLE_HOME je nastavená správne.

Problém je v tom ,že projekty skompilované predtým idú normálne , ale tie ktoré skompilujem teraz už hlásia ORA: 12154 .
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Ivan 20. 10. 2010, 11:16:03
Instant client ma jine poradi hledani souboru tnsnames.ora nez ten thick client. Zkus si spustit strace -e trace=file a uvidis kde ho hleda. Instant client hleda tnsnames.ora v /etc a pak taky jako $HOME/.tnsnames.ora. Pokud je ovsem nastaven $ORACLE_HOME tak se snazi byt kompatibilni s thick clientem.

Ivan
PS: trochu jsem to zjednodusil, pokud ti to nebude fungovat najdi si prislusnou kapitolu v dokumentaci k instantClientu.
PS1: krome SQLAPI jeste existuji i knihovny jako OTL, SOCI nebo orclib.
Název: Re: Oracle connect c++ / Linux
Přispěvatel: lubokla 20. 10. 2010, 11:25:35
Vďaka za návrhy , idem vyskúšať a dám vedieť ako to fungovalo .
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Logik 20. 10. 2010, 11:28:36
A exportuješ to $ORACLE_HOME? Zkus si ho vypsat přímo v programu....

I když to by asi nefungovali i ty ostatní programy, takže beru zpět.... No ale za vyskoušení nic nedáš :-)
Název: Re: Oracle connect c++ / Linux
Přispěvatel: lubokla 21. 10. 2010, 11:37:57
$ORACLE_HOME mam exportnute .

Nainštaloval som Fedoru 13 + Oracle Instant client.
Prostredie Eclipse Galileo , pripájam sa pomocou OCCI priamo od Oraclu ale chyba zostáva:
ORA-12154: TNS:could not resolve the connect identifier specified.
Už naozaj neviem v čom je problém.
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Honza 21. 10. 2010, 12:18:52
zkus jeste nastavit promennou TNS_ADMIN na adresar kde mas tnsnames.ora
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Roman 21. 10. 2010, 12:35:30
Skuste pozriet toto http://www.orafaq.com/wiki/TNS_ADMIN (http://www.orafaq.com/wiki/TNS_ADMIN)
Název: Re: Oracle connect c++ / Linux
Přispěvatel: lubokla 21. 10. 2010, 12:36:48
Mám nastavenú  :-\

http://images.grafika4u.sk/obrazky/oracle.JPG
Název: Re: Oracle connect c++ / Linux
Přispěvatel: Roman 21. 10. 2010, 19:31:30
Ja by som spravil nasledovne:

- uistil si nazov SID databazy
- vytvoril si adresar /home/bux0/ORACLE_HOME/network/admin/tnsnames.ora
- upravil si  tnsnames.ora podla http://www.orafaq.com/wiki/Tnsnames.ora (http://www.orafaq.com/wiki/Tnsnames.ora) a spravne nastavil SID DB
- potom ako uzivatel bux0 zadal prikaz
export TNS_ADMIN=/home/bux0/ORACLE_HOME/network/admin
malo by to ist

Název: Re: Oracle connect c++ / Linux
Přispěvatel: lubokla 22. 10. 2010, 07:46:56
Zaujmavé , nič som neprestavoval , nemenil , PC neresetoval a pustil som program ktorý posledné 4 dni nešiel a ide  :o