|
|
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Добрый день. Установила и настроила freetds и unixodbc все как здесь http://www.sql.ru/forum/431539/2faq-kak-nastroit-odbc-pod-linux-chtoby-dostuchatsya-iz-oracle-do-mssql написано. Но все равно не работает линк, не могу понять в чем причина, ниже привела конфиги, может кто подскажет, где ошибаюсь. Есть еще предположение, может несовместимость версий или разрядности? У меня Oracle 10g Linux x32 и MS SQL 2012 x64. %ORACLE_HOME%/hs/admin/initmymssql.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. listener.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. tnsnames.ora Код: sql 1. 2. 3. 4. 5. 6. [oraprod@sak-oebst02 ~]$ tnsping mymssql TNS Ping Utility for Linux: Version 10.2.0.3.0 - Production on 23-MAY-2013 18:04:52 Copyright (c) 1997, 2006, Oracle. All rights reserved. Used parameter files: %ORACLE_HOME%/network/admin/PROD_test.domain/sqlnet_ifile.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (protocol=tcp)(host=test)(port=1521)) (connect_data = (sid=mymssql)) (HS=OK)) OK (0 msec) Создан dblink: CREATE DATABASE LINK TEST CONNECT TO <пользователь_mssql> IDENTIFIED BY <пароль> USING 'mymssql'; Dblink создан успешно, при проверке соединения через дблинк возникает ошибка: Код: sql 1. 2. 3. Сообщение в alert.log HS: Unable to establish RPC connection to HS Agent... HS: ... Agent SID = (DESCRIPTION=(ADDRESS=(protocol=tcp)(host=test)(port=1521))(connect_data=(sid=mymssql))), NCR error = 65535 Unable to retrieve text of NETWORK/NCR message 65535 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.06.2013, 16:00 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
а odbc соединение отдельно открывается? ps была какаято утилита для проверки из командной строки название запамятовал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 08:57 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
В файле hsodbcsql.trc может быть подсказка. Если такого нет, можно попробовать удалить параметр HS_FDS_TRACE_FILE_NAME = /tmp/hsodbcsql.trc, и поискать логи где-то тут: %ORACLE_HOME%/hs/log ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:15 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
XCB, Я проверяла так как в статье isql -v mymssql <логин> <пароль> коннектилось без проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:42 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Digit_ALL, Файл hsodbcsql.trc есть, но он пустой, сделала как Вы написали в %ORACLE_HOME%/hs/log тоже пусто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 09:46 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaконнектилось без проблем. На всякий случай, запусти isql и проверь что выдает: Код: sql 1. Но похоже проблема в listener.ora где скорее всего нужно указать ENVS. Я не знаком с freetds. Использую EasySoft драйвер для SQL Server, но принцип должен быть тот-же. Листенер создает "clean environment" процесс и посему библиотеки oracle и freetds и environment variables которыми он пользуется не определены. Их необходимо задать в listener'е, в SID_DESC с помощью ENVS. Вот пример для EasySoft: Код: plsql 1. 2. 3. 4. 5. 6. Читай доку по freetds на предмет listener/envs. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:00 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Проверила выборку в isql, все ок выдает имя базы. Добавила LD_LIBRARY_PATH дописала нужные пути ко всем библиотекам и hs и odbc и freetds. Ошибка та же. Мне не принципиально, через что подключаться главное результат. Попробую EasySoft. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:44 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
А задача какая? чего хотите достичь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaМне не принципиально, через что подключаться главное результат. Попробую EasySoft. EasySoft = $ SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:48 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaОшибка та же. Listener перезапустила? В ENVS нужно все что требуется isql. Попробуй unset все envimonment variables и добавлять пока не запустится isql. Это даст список того что надо засунуть в ENVS. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:52 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Я так понимаю данный продукт платный, может кто посоветует бесплатный драйвер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 16:57 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
совсем чайникА задача какая? чего хотите достичь? Хочу получить рабочий dblink с oracle на sql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:08 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaХочу получить рабочий dblink с oracle на sql. Для чего? Может оказаться, что лучше получить линк с MS SQL на Oracle или использовать GG... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:16 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
А есть свободная рабочая станция или сервер с MS Win? Можно HS agent поднять там, а конектитсься через него. Ставишь там Oracle Server Software only Базу не создаешь, поднимаешь только listener Там настраиваешь агента и делаешь на эту машину DBLINK c Linux ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:17 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkaсовсем чайникА задача какая? чего хотите достичь? Хочу получить рабочий dblink с oracle на sql. ок. как решите проблему сможете мне чайнику рассказать как? я делал наоборот через sql server. там очень просто, есть linked server. устанавливал ораклового клиента, а далее в linked server выбирал параметры для подключения. почему я спросил про задачу, допустим что нужно вам что-то передавать из oracle в mssql. не рассматриваете как вариант сохранять файлы, например xml, в папке ОС, а затем, например через Integration services обрабатывать их и подкачивать в БД MS SQL. поэтому я и спросил для чего вам это надо. однако задачу прямого dblink из oracle в mssql я не решал, поэтому буду рад, если вы со мной поделитесь её решением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:19 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SYtanyshkaОшибка та же. Listener перезапустила? В ENVS нужно все что требуется isql. Попробуй unset все envimonment variables и добавлять пока не запустится isql. Это даст список того что надо засунуть в ENVS. SY. Конечно перезапустила. Удалила все переменные, запустила /usr/bin/isql -v mymssql пользователь пароль, отработало. Получается ему вообще не надо никаких переменных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:21 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
В обратную сторону все настроено, linked servers, проблем нет. Предавать файлами не вариант. Мне нужно онлайн получать информацию в оракл из ms sql, поэтому дб линк - единственное решение. Настраивать на стороне ms sql не могу, не мой сервер, я получила только логин с него. Если все таки найду решение, то конечно опишу детально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 17:26 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
[quot tanyshka]SYПолучается ему вообще не надо никаких переменных? Сомневаюсь. Как минимум, он должен знать где лежит odbc.ini. Разве что c freetds он всегда должен быть в определеной директории. Еще момент, listener выполняется под unix id oracle, посему oracle должен иметь сответствующие привилегии на freetds. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.06.2013, 18:58 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshkalistener.ora Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Файлик именно в таком виде? Как минимум скобки... SID_DESC внутри SID_DESC естественно, никак не опознается Не говоря уж об %ORACLE_HOME% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 01:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Вячеслав Любомудров, В файле %ORACLE_HOME% -естественно реальный путь. Не поняла про скобки, я где-то их пропустила? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:47 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
как то так попробуйте: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:54 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
SY, Про oracle пользователя я помню, поэтому под ним и проверяла. Я на файлы freetds сделала права 777. У меня библиотеки freetds и odbc лежат в /usr/local/lib/ и /usr/lib их и прописала в LD_LIBRARY_PATH ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 09:55 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Digit_ALL, Точно скобку не там закрыла. Вообщем решение где-то рядом, теперь ошибка ORA-12154. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 13:14 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Ура, получилось. Создала линк таким образом: CREATE PUBLIC DATABASE LINK "test" CONNECT TO TEST IDENTIFIED BY <PWD> USING '(DESCRIPTION = (ADDRESS = (protocol=tcp)(host=test)(port=1521)) (connect_data = (sid=mymssql)) (HS=OK))'; Connection : Successful Потом еще была трабла с соединением добавила: 1. Set INBOUND_CONNECT_TIMEOUT_<listener_name>=0 in listener.ora 2. Set SQLNET.INBOUND_CONNECT_TIMEOUT=0 in sqlnet.ora Итого, ошибка была в скобке в listener.ora и dblink, почему то не захотел использовать имя из tnsnames.ora И еще может кому пригодится, имя таблицы д.б. в кавычках по другому у меня не работает: SELECT * from "dbo.table_test"@test Спасибо всем за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2013, 14:22 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Dblink настроила, работает. Да вот только странно он работает, например, выбираю из таблицы Код: sql 1. Возвращает 5ть колонок из 7ми Если обратиться к тому столбцу, который он не показывает Код: sql 1. 2. На металинке говорят, что это баг 11ой версии, но у меня 10g. The ORA-00904 can be caused when a character length does not match between starting and receiving databases. http://www.dba-oracle.com/t_ora_00904_select_nvarchar_sql_server.htm Решение не помогло. Может у Вас есть идеи? Проблема, скорее всего, связана с текстовыми типами данных (тип столбца, который не отображаеться nvarchar) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2013, 18:01 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
tanyshka, подскажите у вас линукс 32 или 64 бит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2013, 12:21 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
sa_viv, х32, кстати, предыдущую проблему решили созданием вьюшек для таблиц с подходящим типом данных и преобразованием. CAST(CAST(DESCRIPTION AS xml) AS varchar(255)) AS DESCR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2013, 10:04 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
select отлично работает (select * from mstable@mslink;), а вот инсерт нет:( insert into mstable@mslink select * from oratable таблицы по структуре идентичны, ошибка: Error report - SQL Error: ORA-28500: соединение ORACLE с посторонней системой выдало сообщение: [Oracle][ODBC SQL Server Wire Protocol driver][Microsoft SQL Server]Incorrect syntax near '@'. {HY000,NativeErr = 102} ORA-02063: предшествующий 2 lines из mslink оно вообще реализуемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2018, 10:09 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Попробуйте вместо * явные имена полей, причем начинайте с полей простых типов - number, char и т.п. Между типами данных этих СУБД есть отличия, в некоторых случаях придется что-то конвертировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2018, 10:27 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
dmdmdmПопробуйте вместо * явные имена полей, причем начинайте с полей простых типов - number, char и т.п. Между типами данных этих СУБД есть отличия, в некоторых случаях придется что-то конвертировать. попробовал - никак, не работает даже insert into mstable@mslink select null as COLUMN1, null as COLUMN2 from oratable и надо именно из оракла в таблицы мсскл делать вставки. кстати вот это вполне себе работает insert into mstable@mslink values ('значение1', 'значение2') ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2018, 12:10 |
|
||
|
Dblink Oracle к MS SQL
|
|||
|---|---|---|---|
|
#18+
Используйте PL/SQL. Код: 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. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2018, 12:21 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1883589]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
155ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 473ms |

| 0 / 0 |
