|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Добрый день Ув. Форумчане. Уже неделя как я не могу попасть из Oracle в Postgres. Вводные: установлены 2 пакета: unixODBC-devel-2.2.14-14.el6.x86_64 postgresql-odbc-08.04.0200-1.el6.x86_64 настроен odbc.ini [GateWay_Postgres] Driver = /usr/lib64/psqlodbc.so Servername = 192.xxx.xxx.xxx Trace = Yes TraceFile = /home/oracle/odbc_rt.trc Username = xxxxxx Password = xxxxxx Port = 5432 Database = test_db ReadOnly = No RowVersioning = No ShowSystemTables = No ShowOidColumn = No FakeOidIndex = No ODBC соединение успешно isql -v GateWay_Postgres +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ select работает. SQL> настроен HS SID_LIST_LISTENER_GW= (SID_LIST= (SID_DESC= (SID_NAME=GateWay_Postgres) (ORACLE_HOME=/u01/app/oracle/product/gateway_12_2) (ENV="LD_LIBRARY_PATH=/u01/app/oracle/product/gateway_12_2/hs/lib:/u01/app/oracle/product/gateway_12_2/lib:/u01/app/oracle/product/11.2.0.4/db_1/lib:/usr/lib64") (PROGRAM=dg4odbc) ) ) настроен initfile HS_FDS_CONNECT_INFO = GateWay_Postgres HS_FDS_TRACE_LEVEL = 255 HS_FDS_SHAREABLE_NAME=/usr/lib64/psqlodbc.so HS_NLS_NCHAR = UCS2 HS_LANGUAGE = AMERICAN_AMERICA.CL8MSWIN1251 set ODBCINI=/home/oracle/.odbc.ini Создан линк. При попытке сделать селект возвращается ошибка: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} ORA-02063: preceding 3 lines from GATEWAY_POSTGRES в трейсах гетвея: Column:1(id): dtype:2 (NUMERIC), prc/scl:28/6, nullbl:1, octet:0, sign:1, radix:0 Exiting hgopcda, rc=0 at 2021/04/26-10:03:06 Entered hgopoer at 2021/04/26-10:03:06 hgopoer, line 240: got native error 7 and sqlstate HY000; message follows... Error while executing the query {HY000,NativeErr = 7} Exiting hgopoer, rc=0 at 2021/04/26-10:03:06 hgodtab, line 554: calling SQLTables got sqlstate HY000 The hoada for table public.test_table1 follows... hgodtab, line 1833: Printing hoada @ 0x206ddb0 MAX:1, ACTUAL:1, BRC:1, WHT=6 (TABLE_DESCRIBE) DTY NULL-OK LEN MAXBUFLEN PR/SC CST IND MOD NAME 3 DECIMAL Y 31 31 28/ 6 0 0 0 id Exiting hgodtab, rc=0 at 2021/04/26-10:03:06 with error ptr FILE:hgodtab.c LINE:554 ID:Checking for table existence полный трейс гетвея во вложении ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 14:03 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
авторSQL text from hgopars, id=1, len=44 ... 00: 53454C45 43542041 312E2269 64222046 [SELECT A1."id" F] 10: 524F4D20 22707562 6C696322 2E227465 [ROM "public"."te] 20: 73745F74 61626C65 22204131 [st_table" A1] Знаете что-нибудь о регистрозависимых именах объектов? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 14:50 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
andrey_anonymous, Спасибо что не прошли мимо. Ну насколько я помню в случае с pg все приводиться в нижнему регистру. Или я неправильно понял вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 14:54 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
matrosov неправильно понял вопрос? Идентификаторы в двойных кавычках никуда не приводятся. Для того их и "кавычат". ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 14:58 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
andrey_anonymous matrosov неправильно понял вопрос? Идентификаторы в двойных кавычках никуда не приводятся. Для того их и "кавычат". попробовал так: SQL> select * from public.test_table@GATEWAY_POSTGRES.IBOX; select * from public.test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-00903: invalid table name и так: SQL> select "id" from test_table@GATEWAY_POSTGRES.IBOX; select "id" from test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} ORA-02063: preceding 3 lines from GATEWAY_POSTGRES ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 15:07 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
matrosov andrey_anonymous пропущено... Идентификаторы в двойных кавычках никуда не приводятся. Для того их и "кавычат". попробовал так: SQL> select * from public.test_table@GATEWAY_POSTGRES.IBOX; select * from public.test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-00903: invalid table name Пойдите уже на посгрю и посмотрите, как именно называется табличка. Скорее всего, Вам поможет Код: plsql 1.
но то это не точно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 15:12 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
andrey_anonymous matrosov пропущено... попробовал так: SQL> select * from public.test_table@GATEWAY_POSTGRES.IBOX; select * from public.test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-00903: invalid table name Пойдите уже на посгрю и посмотрите, как именно называется табличка. Скорее всего, Вам поможет Код: plsql 1.
но то это не точно :) она называется public.test_table как в исходных данных. сори я сразу не вопроса) т.е. select * from "public"."test_table" в isql работает ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 15:16 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
matrosov попробовал так: SQL> select * from public.test_table@GATEWAY_POSTGRES.IBOX; select * from public.test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-00903: invalid table name и так: SQL> select "id" from test_table@GATEWAY_POSTGRES.IBOX; select "id" from test_table@GATEWAY_POSTGRES.IBOX * ERROR at line 1: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} ORA-02063: preceding 3 lines from GATEWAY_POSTGRES ну а так пробовали? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:08 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Может, стоит вместо пробования разных танцев с бубном таки посмотреть как конкретно таблицы видны на стороне Оракула и какие конкретно запросы приходят в Постгрес?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:19 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
landy, да конечно пробовал. ошибка выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:21 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Вообщем все гораздо интереснее. Эта конфигурация без проблем работает с PG версии PostgreSQL 9.6.12 . с PG версии PostgreSQL 9.6.12 она не работает - получаю ошибку ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} Возможно будут какие то идеи? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:23 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
А на другом конце postgres какой версии? Вы случаем не пытаетесь драйверами от 8 версии подключаться к 9? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:38 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
посмотрите док-т ID 2520893.1 - может поможет? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:41 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
landy А на другом конце postgres какой версии? Вы случаем не пытаетесь драйверами от 8 версии подключаться к 9? Спасибо что то однозначно с версионностью драйверов тот который работает с 9 версией не работает с 12( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:46 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
можно еще попробовать в драйвере odbc Код: plsql 1.
а в init для hs установить Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:46 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
matrosov, Попробуйте обертку Код: plsql 1.
Это рекомендованная настройка, так как системная обертка правильно обрабатывает не реализованные в драйвере функции ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 21:45 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
matrosov, И еще, при работе с 64 utf, я использую такие настройки (часть у Вас уже установлены) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 21:48 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Добрый день. Бьюсь над этой же проблемой. Продвинулся чуть дальше автора. disql -v database_name +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select * from rooms; SQLRowCount returns 191 191 rows fetched Тут всё в порядке, получаю ожидаемый ответ. На стороне Postgres вижу запрос от Oracle (Смотрю через обозреватель DBeaver): select * from rooms; Теперь пытаюсь сделать запрос через dblink. [oracle@test Рабочий стол]$ sqlplus SQL*Plus: Release 11.2.0.1.0 Production on Fri Oct 8 13:59:04 2021 Copyright (c) 1982, 2009, Oracle. All rights reserved. Enter user-name: ********** Enter password: *********** Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> CREATE DATABASE LINK pg_link CONNECT TO "dblinkuser" IDENTIFIED BY password USING 'database_name'; Database link created. SQL> select * from "rooms"@pg_link; select * from "rooms"@pg_link * ERROR at line 1: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} ORA-02063: preceding 3 lines from PG_LINK SQL> В DBeaver вижу, что в сторону Postgresql прилетает запрос: SELECT * FROM "rooms" т.е. вроде бы всё, то же самое но нет точки с запятой в конце запроса. В итоге Постгрес прерывает этот запрос. Может кто подскажет как добавить ";" в конец запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 14:32 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Проблема не в этом запросе, а в вызовах API, которые идут после него. Расширяй трассировку. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 14:37 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Real_imp, ORA-28500: connection from ORACLE to a non-Oracle system returned this message: Cause: The cause is explained in the forwarded message. Action: See the non-Oracle system's documentation of the forwarded message. Ошибка на стороне Postgres. Вот её описание: Код: plaintext 1. 2.
Разбирайтесь, что там не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 14:43 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Вероятнее всего Оракул хочет закоммитить транзакцию, а Слон отвечает "какая транзакция, не было тут никакой транзакции". Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2021, 14:54 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
SQL*Plus, Естественно Postgres будет выдавать ошибку. Если на него подавать запрос без закрывающего знака ";" Проблема не в Postgres. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 06:30 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
Real_imp, Real_imp Естественно Postgres будет выдавать ошибку. Если на него подавать запрос без закрывающего знака ";" Oracle SqlDeveloper Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2021, 11:41 |
|
Ошибка DBlink Oracle-> Postgres
|
|||
---|---|---|---|
#18+
РЕШЕНИЕ для моего случая. Важно! Вводные данные: На стороне Oracle: OS Oracle 6 На стороне Ubuntu: Postgresql v12 При запросе через dblink на стороне Оракла вижу ошибку: ERROR at line 1: ORA-28500: connection from ORACLE to a non-Oracle system returned this message: ERROR: current transaction is aborted, commands ignored until end of transaction block; No query has been executed with that handle {25P02,NativeErr = 1} ORA-02063: preceding 3 lines from PG_LINK При этом на стороне Ubuntu в логах postgresql (/var/log/postgresql/.../errors.log) вылавливаю ошибку: column d.adsrc does not exist Оказалось, что с версии postgresql v12 и выше таблица с данным столбцом d.adsrc упразднена. Решением стало понижение версии postgresql до v11 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.10.2021, 11:43 |
|
|
start [/forum/topic.php?fid=52&msg=40103465&tid=1879783]: |
0ms |
get settings: |
26ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
418ms |
get tp. blocked users: |
2ms |
others: | 395ms |
total: | 919ms |
0 / 0 |