PDA

View Full Version : [ORACLE+PERL] database link


basileus_82
08-04-2011, 09:24
sto usando PERL per gestire ORACLE: dopo aver fatto la connessione al database GMD in oracle, io voglio fare una query su di un database oracle (GAUDI) che sta su un altro server

tutti i parametri sono giusti

aaaa= username_remoto (GAUDI)
bbbb=password_remota(GAUDI)

ORE2NEW=service name

CREATE DATABASE LINK ORE2NEW CONNECT TO aaaa IDENTIFIED BY bbbb USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORE2NEW)))


ho questo errore

DBD::Oracle::st execute failed: ORA-00933: SQL command not properly ended (DBD ERROR: error possibly near <*> indicator at char 67 in
'CREATE DATABASE LINK ORE2NEW CONNECT TO aaaa IDENTIFIED BY <*>bbbb USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORE2NEW)))'') [for Statement "CREATE DATABASE LINK ORE2NEW CONNECT TO aaaa IDENTIFIED BY bbbb USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xxx.xxx.xx)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = ORE2NEW)))'"] at C:\Users\Davide\Desktop\gmd_gaudi2.pl line 238.


ho provato a vedere qualcosa relativo a questo errore, ma non mi pare ci sia nulla di errato, la sintassi mi pare giusta

se faccio una connessione normale al GAUDI (o GMD) funziona, ottengo tutte le query che voglio

basileus_82
08-04-2011, 11:20
Allora

inserendo CONNECT TO CURRENT_USER al posto di username e password mi crea il database link

suppongo sia un problema username/password ma provando a connettermi al database remoto normalmente mi ci connetto perfettamente



provando da sqlplus è uguale

basileus_82
08-04-2011, 14:12
Allora

inserendo CONNECT TO CURRENT_USER al posto di username e password mi crea il database link

suppongo sia un problema username/password ma provando a connettermi al database remoto normalmente mi ci connetto perfettamente



provando da sqlplus è uguale


risolto!!!

il problema era che la password doveva essere inclusa tra doppi apici (strano, tutte le sintassi viste non le riportavano)

khelidan1980
09-04-2011, 00:02
risolto!!!

il problema era che la password doveva essere inclusa tra doppi apici (strano, tutte le sintassi viste non le riportavano)

CREATE DATABASE LINK è di fatto un istruzione sql Oracle a tutti gli effetti, se password è un varchar va tra apici(doppi o singoli)