powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с настройкой Oracle - Postgres DBLINK
25 сообщений из 77, страница 3 из 4
Помогите с настройкой Oracle - Postgres DBLINK
    #38153701
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полтора часа на закачку, инсталляцию - все работает.

1. Настраиваем ODBC. odbcad32 - добавляем odbc source dg4test
2. Настраиваем HS.
%ORACLE_HOME%\hs\admin\initPGSQL.ora
# This is a sample agent init file that contains the HS parameters that are
# needed for the Database Gateway for ODBC

#
# HS init parameters
#
HS_FDS_CONNECT_INFO = pg4test
#HS_FDS_TRACE_LEVEL = <trace_level>


#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>



3. listener
%ORACLE_HOME%\NETWORK\ADMIN\listener.ora
# listener.ora Network Configuration File: D:\DB\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PGSQL)
(ORACLE_HOME=D:\DB\Oracle\product\11.2.0\dbhome_1)
(PROGRAM=dg4odbc)
)
)


ADR_BASE_LISTENER = D:\DB\Oracle



SID_NAME = init<SID>.ora в папке HS


4. tnsnames
%ORACLE_HOME%\NETWORK\ADMIN\tnsnames.ora
POSTGRES =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.lan)(PORT = 1521))
)
(CONNECT_DATA =
(SID = PGSQL)
)
(HS = OK)
)


Проверил, что будет если задать одинаковый SID и TNSNAMES. Работает, зараза...

5. dblink (логин-пароль регистрозависимы)
Код: plsql
1.
create database link postgres connect to "postgres" identified by "postgres" using 'POSTGRES';



6. проверяем
sqlplus scott@xxx.world
SQL
*Plus: Release 11.2.0.3.0 Production on Sat Feb 16 00:09:19 2013

Copyright (c) 1982, 2011, Oracle. All rights reserved.

Enter password:

Connected to:
Oracle Database 11g Release 11.2.0.1.0 - Production

SQL> select * from dual@postgres;
select * from dual@postgres
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ОШИБКА: отношение "DUAL" не существует;
No query has been executed with that handle {42P01,NativeErr = 1}
ORA-02063: preceding 3 lines from POSTGRES


SQL>

SQL> select * from all_tab_columns@postgres;
select * from all_tab_columns@postgres
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ОШИБКА: отношение "ALL_TAB_COLUMNS" не существует;
No query has been executed with that handle {42P01,NativeErr = 1}
ORA-02063: preceding 3 lines from POSTGRES

SQL> select * from DataTable@postgres;
select * from DataTable@postgres
*
ERROR at line 1:
ORA-28500: connection from ORACLE to a non-Oracle system returned this message:
ОШИБКА: отношение "DATATABLE" не существует;
No query has been executed with that handle {42P01,NativeErr = 1}
ORA-02063: preceding 3 lines from POSTGRES

SQL> select * from "DataTable"@postgres;

Id v_num v_str
---------- ---------- --------------------
1 123 str1
2 456 str2
3 789 str3

SQL>


DBA_TAB_COLUMNS, зараза, не отдается.
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38153717
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Vadim LejninУ Вас ODBC имя GRPOSTGRESQL
переименовала в POSTGREORALINK.
потом
Код: plsql
1.
2.
3.
create public database link NEW_GRPOSTGRESQL
connect to postgres identified by "pass" using 
'POSTGREORALINK'; 




Здесь должно быть TNS-имя. А не имя ODBC. Попробуйте
Код: plsql
1.
using 'GRPOSTGRESQL'
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38153732
Фотография Vadim Lejnin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для HS нет DBA_
есть только ALL_
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38153747
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На ALL_* оно тоже не отзывается...
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38153907
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazoHistПолтора часа на закачку,
Извините, но это "голубой слон Постгри". =)
MazoHistЗдесь должно быть TNS-имя. А не имя ODBC. Попробуйте
уф.... Ну заработало!!! Ура. =)))

MazoHist, Vadim, спасибо вам огромное!!! Добра вам. =)))
Vadim, еще раз спасибо Вам, что не бросили. ;)
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38153917
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazoHistПолтора часа на закачку,
Значительную часть времени ушло на закачку Oracle. Ибо для линуксов есть много и разных, а для винды не было. А канал на забугорье был видимо загружен...

May12Извините, но это "голубой слон Постгри". =)

Если знать, как его правильно готовить - нормально. Местами даже вкусно. :)
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155557
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже хотела мануал писать для следующего поколения школьников, а тут выяснилось что select по дб линку не возвращает часть полей из таблицы субд postgresql. Например, есть select:
Код: plsql
1.
select *  from "_document84"@NEW_GRPOSTGRESQL;



возвращается некоторая выборка. смотрю в неё глазом и вижу отсутствие двух полей:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 
/*Из БД на Postgre*/
CREATE TABLE _document84
(
  _idrref bytea NOT NULL,
  _version integer NOT NULL DEFAULT 0,
  _marked boolean NOT NULL,
  _date_time timestamp without time zone NOT NULL,
  _number mchar(9) NOT NULL, -- нет этого поля в результирующей выборке сделанной по дб линку из oracle
  _posted boolean NOT NULL, -- и вот этого поля тоже нет =(( 
  _fld85rref bytea NOT NULL,
  _fld86rref bytea NOT NULL,
  _fld87rref bytea NOT NULL,
  _fld88rref bytea NOT NULL,
  _fld223 numeric(15,2) NOT NULL,
  _fld89 numeric(15,2) NOT NULL,
  _fld90 numeric(15,2) NOT NULL,
  _fld93 numeric(15,2) NOT NULL,
  _fld94 numeric(15,2) NOT NULL,
  _fld91 numeric(15,3) NOT NULL,
  _fld195rref bytea NOT NULL,
  _fld224rref bytea NOT NULL,
  CONSTRAINT _document84_pkey PRIMARY KEY (_idrref)
)



причем эти поля разных типов, ну не показывал бы он только поля типа varchar, было бы печально, но не на столько, а тут он показывает все поля кроме двух отмеченных в листинге полей РАЗНЫХ типов.
Help still needed!!!
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155604
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,

авторselect >>>*<<< from
перечислить поля. to_char(_posted) ?
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155635
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123ййперечислить поля. to_char(_posted) ?
не поняла, но может быть имелось в виду вот это:
Код: plsql
1.
select to_char("_posted"), to_char("_number") from "_document84"@NEW_GRPOSTGRESQL;


результат:
ORA-00904: "_number": недопустимый идентификатор


Код: plsql
1.
select to_char(_posted) from "_document84"@NEW_GRPOSTGRESQL;


Результат:
Код: plaintext
ORA-00911: неверный символ
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155699
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,
гадем дальше. Настраиваем ODBC. BoolsAsChar=1
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155968
MazoHist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор _number mchar(9) NOT NULL, -- нет этого поля в результирующей выборке сделанной по дб линку из oracle

Дайте угадаю - это 1С?
ИМХО, если с булевым полем получится, то с этим вряд ли. Сомневаюсь, что стандартный odbc драйвер поймет что это такое. Возможно, придется делать преобразование в более стандартный вид средствами postgres, и только потом перетаскивать в Oracle.
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155983
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй, такое дело - я в настройках ODBC драйвера поменяла драйвер (кодировку драйвера) с unicode на Ansii (см. скриншот )

и (вуаля) две недостающие колонки стали появляться.

Но в поле "_number" показывается только пять первых символов =(
Код: plaintext
1.
2.
3.
4.
5.
_number
00000
00000
00000
00000
00000
, а должно девять.

но без 123ййгадаем дальше. и к этому бы не пришли.

т.е. проблема стала уже: вывести через дблинк не пять первых символов, а все из поля типа mchar(9)?


Вообще, обнаружено, что для odbc драйвера есть еще пару страничек настроек:
Первая ;
Вторая
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38155989
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MazoHistДайте угадаю - это 1С?
Здравствуйте, MazoHist. Совершенно верно.
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38156050
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,
если честно "тыкаю пальцем в небо" :)
UnknownsAsLongVarchar ?
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38156094
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй, мы тут примерно одним и тем же занимаемся - "тыкаем" кто в небо, кто в клавиатуру. =) Извините, за наличие вагано-петросятины в шутке. =)

Результат:
Код: plaintext
1.
2.
3.
4.
_number
00000
00000
00000
00000

=) т.е. =(
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38156184
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,
create view где to_char("_number") ?
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38156197
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
123йй, в смысле, имелось в виду в postgre делать такую вьюшку?
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38156199
123йй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12,
да
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #38441769
Gu.Ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Проконсультируйте пожалуйста.

Имеем Oracle linux 64 бита на нем DB Oracle 11.2 и DB Firebird на другом сервере. Нужно настроить соединение из Oracle к FB через dblink.

Будет ли работать в 64 битном окружении с 64 битном драйвером ODBC, или можно не тратить время зря и сразу разворачивать отдельное 32 битное окружение и использовать 32 битный драйвер ODBC?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Помогите с настройкой Oracle - Postgres DBLINK
    #39264387
bestonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые коллеги.

Вижу, что тема очень старая, но все же попробую сюда написать.

Появилась необходимость передачи данных в реальном времени из Postgres в Oracle.
По мотивам этой темы (она как оказалось закончилась удачно) попробовал повторить тоже самое. Но...

С Вашего позволения выложу файлы, которые правил по ходу действий.

Listener.ora


SID_LIST_LISTENER =
(SID_LIST =
........
(SID_DESC =
(SID_NAME =PSQL)
(ORACLE_HOME = D:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = dg4odbc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = PC51.as.local)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)


Tnsnames.ora


PSQL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PC51.as.local)(PORT = 5432))
(CONNECT_DATA = (SID = PSQL))
(HS = OK)
)
)


initPSQL.ora


HS_FDS_CONNECT_INFO = PSQL #<odbc data_source_name>
HS_FDS_TRACE_LEVEL = OFF #<trace_level>
HS_LANGUAGE = AMERICAN_AMERICA.CL8MSWIN1251
HS_FDS_SHAREABLE_NAME = dg4odbc.obj


Скрины настройки ODBC

Создал в БД оракла DBLINK:
Код: plsql
1.
2.
3.
create public database link PSQL
  connect to S1000D_NSI
  using 'PSQL';



tnsping psql - проходит на отлично.

Но при обращении из оракла
Код: plsql
1.
2.
SELECT *
FROM nsi_all_refbook@PSQL;



получаю ошибку Ora-12154:TNS - невозможно разрешить заданный идентификатор соединения.

Подскажите в чем ошибся, в какую сторону смотреть ?

Заранее благодарю за помощь.
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #39264404
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bestonixListener.ora

(ADDRESS = (PROTOCOL = TCP)(HOST = PC51.as.local)(PORT = 1521))

Tnsnames.ora

(ADDRESS = (PROTOCOL = TCP)(HOST = PC51.as.local)(PORT = 5432))
Для начала
А вообще еще приводишь sqlnet.ora (на предмет всяких default_domain)
И tnsping PSQL
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #39264475
bestonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привел к единому порту listener & tnsnames = 1521

sqlnet.ora

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, LDAP, ONAMES, HOSTNAME)


tnsping psql;
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #39265130
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что, все равно Ora-12154 ?

И это...
Надеюсь, tnsnames.ora и результаты tnsping ты приводил именно с сервера БД? И твой экземпляр БД видит соответствующий tnsnames.ora (TNS_ADMIN или, по умолчанию, %ORACLE_HOME%\network\admin)? Поскольку в данном случае именно сервер БД, а не твоя клиентская машинка выступает клиентом Oracle.

В принципе, ты можешь в операторе создания линка прописать всю необходимую информацию
Типо:
Код: plsql
1.
2.
3.
4.
create public database link PSQL
  connect to S1000D_NSI /* это имя юзера */
  identified by dummy /* пароль, если не нужен, можно задать пустышку (dummy) */
  using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=PC51.as.local)(PORT = 1521))(CONNECT_DATA=(SID = PSQL))(HS = OK))';
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #39265166
bestonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день Вячеслав.

Сервер Oracle вертится на сетевой машине, на нем же тестовая и боевые базы. На моей рабочей машине стоит только оракловый клиент.
А вот сервер postgres'а установил на своей машине. Создал в ней тестовую таблицу и пытаюсь прочитать ее содержимое. Tnsping снимал со своей машины.
...
Рейтинг: 0 / 0
Помогите с настройкой Oracle - Postgres DBLINK
    #39265206
bestonix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вячеслав Любомудров, большое спасибо.

Перечитал несколько раз Ваше сообщение, подумал и кажется я понял в чем проблема.
...
Рейтинг: 0 / 0
25 сообщений из 77, страница 3 из 4
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите с настройкой Oracle - Postgres DBLINK
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]