oracle dblink перестает работать с опцией allow big result sets (odbc mysql connect)

357
29 октября 2017, 18:11

Allow big result sets - опция разрешает большие наборы данных, нужна для передачи clob полей. Если опция не установлена данные будут усечены до 255 символов. 5.2 Connector/ODBC Connection Parameters.

Без этой опции все работает отлично, но clob обрезаются до 255 символов. Если опция установлена при загрузке данных возникает ошибка, в которой ничего не написано:

ORA-28500: connection from ORACLE to a non-Oracle system returned this message: [Generic Connectivity Using ODBC]

Программа вылетает на 11 итерации цикла LOOP, в независимости от данных в этой строке.

Для загрузки используется код (PL/SQL):

BEGIN
  CURSOR_ID := DBMS_HS_PASSTHROUGH.OPEN_CURSOR@EMS;
  DBMS_HS_PASSTHROUGH.PARSE@EMS(CURSOR_ID,'INSERT INTO EMS_CLIENT VALUES (?,?,?,?,?,?,?)');
  FOR DATA_SET IN (
    SELECT ecs.CLIENT_ID, ecs.CLIENT_EMAIL, ecs.DESCRIPTORS, ecs.CLIENT_BIRTHDAY, ecs.CLIENT_FIRST_NAME,ecs.CLIENT_LAST_NAME,ecs.REC_DATE 
      FROM EMS_CLIENT_SYNC ecs
) LOOP
  tmCLIENT_ID := DATA_SET.CLIENT_ID;
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,1 ,DATA_SET.CLIENT_ID);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,2 ,DATA_SET.CLIENT_EMAIL);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,3 ,DATA_SET.DESCRIPTORS);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,4 ,DATA_SET.CLIENT_BIRTHDAY);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,5 ,DATA_SET.CLIENT_FIRST_NAME);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,6 ,DATA_SET.CLIENT_LAST_NAME);
  DBMS_HS_PASSTHROUGH.BIND_VARIABLE@EMS(CURSOR_ID,7 ,DATA_SET.REC_DATE);
  ROW_COUNT := ROW_COUNT + DBMS_HS_PASSTHROUGH.EXECUTE_NON_QUERY@EMS(CURSOR_ID);
END LOOP;
  DBMS_HS_PASSTHROUGH.CLOSE_CURSOR@EMS(CURSOR_ID);
COMMIT;
EXCEPTION WHEN OTHERS THEN 
  DBMS_OUTPUT.PUT_LINE(tmCLIENT_ID);
  ROLLBACK;
  RAISE;
END;
READ ALSO
Есть ли такая почта уже в таблице mySQL

Есть ли такая почта уже в таблице mySQL

Необходимо добавить в код условиеЕсли такая почта уже есть в таблице, то выдать ошибку "E-Mail адрес занят"

284
Скрипт не выполняется

Скрипт не выполняется

На локальной машине тестирую вот этот скрипт

246
JAVA ругается антивирус

JAVA ругается антивирус

Залил свою программу на virustotal и некоторые антивирусы находят в моей программе вирусыЕсть ли способ определить, что именно не нравится этим...

332