Какой максимальный объем строк можно выгрузить в Базу Данных в Loginom?

0 голосов
Павел Шимков в категории Как сделать...
Добрый день. Столкнулся с небольшой проблемой. Нужно выгрузить через узел связи Orcacle определенные данные в БД создаваемую в Loginom ( Создал подключение -> подключил к Базе данных). По запросу sql начал выгружать данные и столкнулся с ошибкой (База данных: out of memory). Подсчитал количество строк подходящих по условию в выгрузку, получилось 28млн. Исходя из этого хотел узнать, какой объем возможен для выгрузки в БД.

Ответ: 1 шт.

0 голосов
alexey.arustamov

Размер ограничен только оперативной памятью:

  1. Если работаете с настольной версий, то используйте 64-х битную редакцию. Это позволит обработать больше.
  2. Loginom старается обработать всё в памяти. Если не хватает ОЗУ, то выделите больше размер под файл подкачки.
Павел Шимков

Проблема просто заключается в том что в Loginom выдает ошибку на функции Left, regexp. Приходится использовать betwen. WHERE title BETWEN '90' AND '91'.

WHERE (LEFT(title, 2) IN ('90')) ---- ошибка

WHERE (LEFT(title, 2) = '90'---- ошибка

WHERE title regexp'^['90']+'---- ошибка

alexey.arustamov
Если есть ошибка, то напишите на [email protected], мы ошибку обязательно исправим.

Если опишите как формулируется задача, то, возможно, мы подскажем как её решить проще.
Павел Шимков
Основная задача, что нужно загрузить в БД данные из созданного подключения подключения. Условие, что в одном столбце title имеются значения содержащие всегда 12 символов. нужно выгрузить значения начинающееся на 90 (90*********)
alexey.arustamov

А зачем использовать регулярные выражения? Регулярные выражения - мощная штука, но не самая быстрая. Она всегда работает медленнее, чем поиск подстроки, т.к. механизм сильно избыточный. Им стоит пользоваться, если по простому задачу не решить.

Если в данном случае звездочки означают "любой символ", тут можно воспользоваться простой формулой: (Left(title, 4) = "90 (90") and (Right(title, 1) = ")"). Если ответит - истина, значит условие выполнено. Можно еще добавить проверку на длину строки.

Павел Шимков
Все равно летит в ошибку ORA-00904: '90' :INVALID IDENTIFIER

запрос простой Select Count(*) from SOMETITLE where Left(title,2) = '90'
alexey.arustamov

Это ошибка не Loginom, а сервера Oracle. Видимо не тот ограничитель символов. БД воспринимает '90', как название идентификатора.

alexey.arustamov

Возможно стоит в подключении снять галочку с признака "Обрамлять имена кавычками" - https://help.loginom.ru/userguide/integration/connections/list/oracle.html

rudakov
Функции LEFT и RIGHT не поддерживаются в Oracle. Они используются в SQL Server, MySQL и некоторых других версиях SQL. В Oracle вам нужно использовать функцию SUBSTR.

Вот простые примеры:

LEFT ('Mama', 2) = 'Ma'     =>   SUBSTR('Mama',1,2) = 'Ma'

RIGHT ('Mama', 2) = 'ma    =>   SUBSTR('Mama',-2,2) = 'ma'

Обратите внимание, что отрицательное число отсчитывается с конца.

Подробности по функциям Oracle10: https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions001.htm#i88893
...