Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Теоретические аспекты и практические реализации создания, внедрения и использования баз данных, СУБД, хранилищ.
  • Страница:
  • 1
  • 2

ТЕМА:

Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1642

Перестала работать.
Общий смысл процесса заключается в том, что из базы db2 забираются данные.
Затык с вызовом DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE
На стороне db2 процедура отрабатывает нормально.

При запуске кода pl/sql с этим вызовом программа виснет. Как мне понять где происходит сбой, на стороне db2 или на стороне oracle?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1643

В передаваемом выражении не используются SELECT, COMMIT, ROLLBACK, CONNECT или связанные переменные? И, вообще, как выглядит параметр, передаваемый в функцию?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1644

Связанных переменных вроде нет. Там просто вызов хп:

call nnn.fun(3, 0, '()', 2,'2011-06-01-07.13.34', '2011-06-01-07.23.34', 1)

После этой процедуры, ну по крайней мере раньше так работало, я делала селект из курсора, в котором в наличии данные за нужный мне период. Неожиданно процедура перестала выполняться, если вызывать ее из под оракла.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1645

Можно посмотреть фрагмент кода, в котором используется DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE?

Раз на второй стороне все нормально, можно проверить 2 варианта:
1) проблема с Gateway (заглючил),
2) проблема с доступом к хосту, на котором находится db2 (тем более, вероятно, если доступ удаленный).

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1646

Код:
commit;
str_exe := 'call nnn.fun( 3, 1, ''(02,04,05,70,71,72,10,11,13,20,22,23,31,33,42,43)'', 0, ''()'', 2,'''||
to_char(beg_t, 'yyyy-mm-dd-hh24.mi.ss' ) ||''', '''||
to_char(end_t, 'yyyy-mm-dd-hh24.mi.ss' ) ||''', 1 )';

num_rows := DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE@<тут имя базы>( str_exe );

str_exe := 'insert into temp_data_from_db2 select * from "SESSION".CUR3@<тут имя базы>';

EXECUTE IMMEDIATE str_exe;

commit;

1. Ну db2 откликается с любой машины в этой сети. Ставим db2-шный клиент и пробуем конектится и запросы выполнить. Все нормально. Оракл работает на сервере. На него клиент поставить не могу, но сервер db2 пингуется и по сетевому имени и по ip с сервера oracle.

Как проверить проблему с Gateway?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Jekson.

Re: Проблема с вызовом EXECUTE_IMMEDIATE в Oracle 12 года 10 мес. назад #1647

Я тут подумал может, проблема в to_char. Попробуй завести 2 переменные, которым ты будешь присваивать значения, которые возвращает функция to_char, и передавать вместо to_char(...) эти переменные. Может поможет

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
Время создания страницы: 0.402 секунд