Попробуйте изменить (CONNECT_DATA = (SERVICE_NAME = UBASE)) на (CONNECT_DATA = (SID = UBASE)) в файле TNSNAMES.ora.
ServiceName и SID не обязательно совпадают и, следовательно, не всегда взаимозаменяемы.
Параметр SERVICENAME относится к конкретному GLOBAL_DBNAME, указанному в файле listener.ora на сервере базы данных. Это псевдоним для экземпляра на сервере. На сервере может быть несколько служебных имен, ссылающихся на один и тот же SID. Параметр SID относится к конкретному экземпляру на этом сервере.
Преимущество использования servicename на стороне клиента состоит в том, что администратор базы данных может прозрачно изменять фактический экземпляр, на который ссылается servicename, клиентам, использующим это имя. Я могу иметь это на сервере listener.ora файл:
(SID_DESC =
(GLOBAL_DBNAME = THESERVICE)
(ORACLE_HOME = d:\oracle\10.2.0_DB)
(SID_NAME = SID1)
Позже я могу изменить фактическую базу данных, на которую ссылается, переключив конфигурацию listener.ora:
(SID_DESC =
(GLOBAL_DBNAME = THESERVICE)
(ORACLE_HOME = d:\oracle\10.2.0_DB)
(SID_NAME = SID2)
и никто не мудрее на стороне клиента. Изменения в файлах tnsnames.ora на клиентах не требовались.