Ответы пользователя по тегу Oracle
  • Как работать с вложенными json?

    mayton2019
    @mayton2019
    Bigdata Engineer
    На базе PL/SQL скорее всего ничего нельзя сделать. Там даже строка ограничена в 32К.
    Поэтому тебе надо написать приложение на C#/Java/Python или любом другом языке
    который делает необходимые ETL действия.
    Ответ написан
    Комментировать
  • Хаотичное ухудшение производительности запроса - как определить причину?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Оракла есть пути стабилизации планов. Если ты точно знаешь что текущий план подходит то его можно
    зафиксировать для данного SQL_ID. Последний раз я этим занимался в Oracle 11g и как сейчас - не знаю
    но наверное этот API сохранился.
    Ответ написан
    Комментировать
  • Изменить текст в clob по все таблице?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Если CLOB длиной меньше чем 32 килобайта то его можно конвертить в varchar и решать задачу как с обычной строкой.

    Вот описание пакета DBMS_LOB и функции SUBSTR https://docs.oracle.com/cd/B19306_01/appdev.102/b1...
    Ответ написан
    Комментировать
  • Хочу сделать архивацию логов и после команды SHUTDOWN IMMEDIATE отваливается соединение, почему?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Тебе для архивации логов поднятый oracle не нужен. Докер поднят. Вот подключайся к консоли ssh и копируй файлы куда надо.
    Ответ написан
  • Можно ли написать хранимую процедуру в Oracle DB на Python или на другом из языков программирования?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Не помню как щас. Во времена десятки (Oracle 10g) оракл поддерживал следующие языки разработки хранимок.
    - PL/SQL
    - Java
    - external (C language/binary files)

    Можно попробовать ваш Python-код завернуть в Jython. И запустить внутри Java процедуры. Но готов спорить что не взлетит по нехватке памяти. Дело в том что инстанс по умолчанию конфигурируется с очень тухлыми настройками jvm xmx и там вряд-ли будет что-то больше чем 128m. Да и сама JVM была очень тухлых версий. Что-то вроде 1.5. И это была не та Java которая сейчас OpenJDK. Вобщем велик шанс что не взлетит. Но попробуйте. Обычно Ораклисты не любят увеличивать пул для JVM т.к. он обычно является балластом.

    Есть еще вариант - как-то собрать бинарник из Python кода. И подключить его как сишный код. Здесь я не вкурсе можно это или нет для Python. Если в бинарник вшивается сам интерпретатор - то может получится что-то толстое и монстро-подобное. Вобщем пробуйте сами.

    Вообще разработка хранимок на кастомных языках - это огромная авантюра. И тут никто наперед не скажет сработает это или нет. Это сильный шаг в сторону от Oracle-стиля разработки. И вообще процессное пространство Oracle лучше экономить и не запускать там ничего стороннего. Если вам сильно нужен Python - запускайте его отдельным процессом и подключайтесь через клиент и работайте.
    Ответ написан
    Комментировать
  • Как синхронизировать изменяемую таблицу в 1С с Oracle БД?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Никакой max indexrow вам не поможет. Это же не Excel. Но если вы знаете к примеру что данные имею дату создания и partitioning по этой дате, то тогда запрос может быть улучшен по плану и по логике.
    Ответ написан
    3 комментария
  • Как сравнить по времени в таблицах, отбросив минуты и секунды до часов?

    mayton2019
    @mayton2019
    Bigdata Engineer
    У Оракла есть короткий синтаксис внутренних соединений. Вообще JOIN не нужно указывать.

    SELECT 
      t1.ID, t1.TIME
    FROM 
      t1,t2 
    WHERE t1.ID = t2.ID
      AND trunc(t1.TIME, 'hh24') = trunc(t2.TIME, 'hh24')

    И есть общая рекомендация - выделять ключевые слова SQL в uppercase. Так их удобнее видеть.
    Ответ написан
    Комментировать