Перемещение данных от SQL Server до Oracle неоднократно

Согласно документации W3 :

При получении, если используется метод чтения readAsDataURL (), атрибут результата должен возвращать строку DOMString, которая является URL-адресом данных [RFC2397 ] кодирование файла или данных BLOB-объекта.

blockquote>

Таким образом, ваш reader.result имеет значение null или DOMString. DOMString - это строка с 16-битными символами.

Итак, чтобы проверить размер, вы должны:

  1. Проверить, является ли reader.result нулевым, если оно есть, затем выдать ошибку или отклонить обещание

    [114 ]
  2. Проверьте длину вашей строки, зная, что каждый символ равен 2 байта

  3. Бросьте ошибку, если длина * 2 больше 2 ^ 20, на самом деле 2 * 2 ^ 20 - это количество байтов в 2 МБ

Теперь давайте переведем его в код:

  ReadAsBase64(file): Promise {
    const reader = new FileReader();
    const fileValue = new Promise((resolve, reject) => {
      reader.addEventListener('load', () => {
        const result = reader.result as DOMString;
        if (!result) reject('Cannot read variable');
        if (result.length * 2  > 2**21) reject('File exceeds the maximum size'); // Note: 2*2**20 = 2**21 
        resolve(reader.result);
      });

      reader.addEventListener('error', event => {
        reject(event);
      });

      reader.readAsDataURL(file);
    });

    return fileValue;
  }

11
задан Alkini 20 February 2009 в 20:10
поделиться

5 ответов

Using SQL Server Integration Services (SSIS) вероятна Ваш лучший выбор. Если Вы не знакомы с SSIS, лучший способ испытать что-то состоит в том, чтобы использовать Мастер Экспорта SQL Server и иметь его, создают пакет SSIS для Вас. Например, если Вы входите в Studio управления SQL Server и щелкаете правой кнопкой по Вашей базе данных, затем избранные Задачи-> Данные Экспорта. Оттуда нажмите затем, пока Вы не добираетесь до, "Выбирают Целевой" шаг. Выберите "Microsoft OLE DB Provider для Oracle" и нажмите Properties для определения соединения с базой данных. Когда Вы нажимаете через мастер на странице Save и Execute, удостоверьтесь, что Вы проверяете, что флажок маркировал "Save SSIS Package", на следующем экране указывают, где сохранить пакет SSIS. После того как Вы заканчиваете Мастер Экспорта, Ваши данные будут экспортированы, и у Вас будет пакет SSIS, который можно использовать как есть, или войти и настроить его, чтобы сделать более определенные вещи. После того как у Вас есть свой пакет SSIS, можно запланировать его путем создания Задания SQL Server Agent.

10
ответ дан 3 December 2019 в 04:53
поделиться
  • Oracle Неоднородная Возможность соединения / Шлюзы Базы данных в сочетании с осуществленным представлением (представлениями), МН / SQL или Java
  • SSIS или DTS: оба могут быть запланированы, но потребовать больше, чем доступ только для чтения к SQL Server
  • Java (вероятно, в Oracle, но дополнительно в ОС) использование ODBC или SQLJ для доступа к SQL Server и, возможно, Oracle
  • SQL Server запланировал экспортировать в CSV, Oracle запланировала импортировать из CSV
  • Любой из других инструментов ETL (например, Informatica, Cognos)
  • Любой из бесчисленных языков, которые могут получить доступ к обеим базам данных (но потребовал бы, чтобы поддержание третьей среды запустило приложение в),

Планирование:

  • Автоматический / не reuqired с осуществленными представлениями
  • Oracle DBMS_JOB / DBMS_SCHEDULER
  • Определенный для ОС (крон, Windows Scheduled Tasks, и т.д.)
  • В случае SSIS, DTS или экспорта CSV, запланированного в SQL Server
6
ответ дан 3 December 2019 в 04:53
поделиться

Создайте ссылку базы данных с Oracle на SQL-сервер (неоднородная возможность соединения). Можно использовать эту ссылку для получения данных из SQL-сервера с простым избранным оператором. Если Вы хотите запланировать Вас, может использовать осуществленное представление или dbms_scheduler.

Альтернатива должна поместить Ваши данные в файл CSV, можно использовать внешнюю таблицу или sqlloader для загрузки этих данных в базе данных Oracle.

2
ответ дан 3 December 2019 в 04:53
поделиться

У Вас может быть интерфейс SQL Server с Oracle непосредственно через SSIS (или DTS для 2k). Это обеспечит функциональность ETL и может быть запланировано регулярно.

2
ответ дан 3 December 2019 в 04:53
поделиться

Я имел успех, создающий связанный сервер (из Руководителя предприятия, я думаю) к Oracle на стороне SQL Server. Затем я мог использовать нормальные хранимые процедуры с обеих сторон для выполнения меньшего перемещения данных и обновлений в обоих направлениях. Этот подход может обойти потребность попытаться соединить что-то вне баз данных.

Очень старайтесь использовать последний клиент Oracle на стороне SQL Server все же. Я вспоминаю некоторые дефекты в 10.2.0.2 клиентах, и получение 10.2.0.4 клиентов потребовало Вашего "официального" числа регистрации или покупки Oracle или чего-то.

Для перемещений больших данных (или возможно даже перемещается/обновляет, Вы хотите сделанный на ежедневной или менее частой основе), определенно используйте один из инструментов ETL. У нас был Informatica для наших процессов ETL, но если SSIS может осуществить то, в чем Вы нуждаетесь, это прекрасно также.

1
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: