Ответы пользователя по тегу Oracle
  • Хаотичное ухудшение производительности запроса - как определить причину?

    @rPman
    dml или ddl? обычно когда имеют в виду dml то говорят просто sql.

    запросы create/alter/drop могут менять или сбрасывать собираемую статистику, которая в свою очередь влияет на построение плана и итоговую скорость выполнения запросов

    Так же возможно каскадный запуск перекомпиляции связанных объектов в фоне (если я верно понимаю как это работает в oracle) что банально отнимает процессорное время и соответственно замедляет выполнение запросов
    Ответ написан
  • Как правильно реализовать авторизацию пользователя БД через сайт?

    @rPman
    Безопасность чего?

    Если каждый раз авторизовать каждого пользователя через его логин/пароль в oci_connect то это будет медленно, есть метод oci_pconnect, он кеширует данные подключения и для следующего вызова, т.е. не получится в разных вызовах скриптов использовать разные авторизации, в документации я этого не нашел, там вообще для изолированных подключений нужно использовать oci_new_connect().

    В веб такой (пользователи веб приложения это пользователи oracle) практикой не пользуются (наверное именно из-за вопросов производительности, хотя я это все трогал так давно, еще во времена 7 и 8 версии, теперь есть и пул подключений и возможно еще какие то фичи)
    Да, обычно пользователи веб приложения это просто идентификаторы в соответствующей таблице в базе данных приложения, а логин/пароль базы данных oracle - это логин приложения, единый на вес бакэнд (если есть отдельно бакэнд для веб и отдельно десктопное приложение, то тут можно разные логины использовать, но повторяю плохая).

    p.s. oracle дорос до скоростей mysql/postgres веб? особенно если речь об мелких объемах
    Ответ написан
    3 комментария
  • Можно ли в Беларуси зарегистрироваться в Oracle Cloud Free Tier?

    @rPman
    для free tier хоть у oracle хоть у amazon нужно вводить свою банковскую карту (это такой способ авторизации у них), в этот момент тебе откажут

    если тебе нужна сверх дешевая слабая vps-ка, топай на lowendstock, выбирай машину, смотри, если ли там оплата криптовалютой (а в случае низких цен лучше bitcoin lightning) и пользуйся. Осторожно, сверх дешевые машины 'оверселят не по децки', т.е. будут слабые медленные и не надежные, но всеравно можно под задачу найти очень дешевый вариант, у меня одна машина годами оплачивается по 16$ в год криптовалютой, слабая но скрипты спокойно работают, а 3-баксовая в месяц так вообще отличная (брал для скриптов с высоким сетевым трафиком)
    Ответ написан
    Комментировать
  • Где взять старые версии oracle database и патчи к ним?

    @rPman
    https://www.oracle.com/database/technologies/oracl...
    Previous Database Release Software

    Oracle Database 10.2, 11.x, 12.x, and 18c are available as a media or FTP request for those customers who own a valid Oracle Database product license for any edition. To request access to these releases, follow the instructions in Oracle Support Document 1071023.1 (Requesting Phys... from My Oracle Support.

    ну или на торенте
    Ответ написан
    Комментировать
  • Какие есть решения для виртуализации эмулятора android в xen?

    @rPman
    android x86 можно запустить под linux, без виртуализации, проект anbox или waydroid
    сам же linux прекрасно запустится на xen
    Ответ написан
    5 комментариев
  • Как посредством цикла обновлять данные с одной таблицы в другую таблицу используя динамический sql?

    @rPman
    добавить в запрос update условие where ' || tablenew || '.id=' || tablename.id || ', если id там числовой (если строковый или бинарный то подумать как правильно значения передать через переменные или как то экранировать опасные символы)
    Ответ написан
    2 комментария
  • Возможно ли автоматизировать ежедневный отчет?

    @rPman
    Майкрософт офис позволяет делать загрузку данных на страницу по запросу в sql базу данных, в экселе там для этого есть целый gui - data connection wizard.

    Скрипты sql у тебя есть, максимум сделать так чтобы переменные (дата для отчета например) брались из какой-нибудь таблицы в самой базе (так будет проще).

    Программировать в экселе невероятно просто и сложно одновременно. Сложно - даже уже знакомому с программированию некоторые вещи там реализованы странно и неудобно. Просто - потому что есть готовый генератор кода - ты нажимаешь кнопку - старт записи макроса, затем делаешь действия клавишами мышкой и прочими, затем жмешь - остановить запись макроса и смотришь cгенерированный код (даже такие команды как сохранить файл как). Этот подход позволяет понять, какой код нужно делать на какие действия, практически без копошения в неудобной документации.

    К тому же скорее всего понадобится автоматизировать только механизм сохранения отчета в документ, отвязанный от базы данных. Тупее всего - сделать в шаблоне 2 страницы, одна пустая - куда будет копироваться результат, другая - шаблон с логикой и настройками подключений, откуда будет копироваться результат на первую, затем исходная страница удаляется, и документ сохраняется под нужным именем.

    Итого, задача построения отчетов будет сводиться к правке нужных параметров отчета в базе данных (консольные утилиты oracle для выполнения скриптов например либо из той же программы на excel, так как там в макросах можно делать полноценные формочки с кнопочками), каким то образом указанию имени файла для сохранения результирующего отчета и открытию файла-шаблона.

    p.s. автоматизация работы с excel макросами для неофитов выглядит как магия - открывается документ, в нем прямо на глазах начинают появляться данные сохраняться и открываться новые файлы (да эксель невероятно медленный, на столько что это видно человеку).
    Ответ написан
    Комментировать
  • Как делая программу на java (groovy) передать параметр в plsql не строкой, а байтовым массивом?

    @rPman
    tr1ck1, вам сообщение об ошибке, на русском языке, совсем ничего не подсказывает? даже нисколечки?
    PLS-00172: строковый литерал слишком длинный


    Наверное вы пытаетесь вставить в одну единственную запись типа varchar, string куда запихали 11к строк, оно тупо не помещается наверное?

    Попробуйте изменить тип колонки на text, но лучше подумайте, так ли вам нужна база данных тут?
    Ответ написан
    Комментировать
  • Какой есть рабочий вариант PHP7.4+Oracle8?

    @rPman
    https://www.php.net/manual/en/ref.pdo-oci
    https://www.php.net/manual/ru/oci8.requirements.php

    там в требованиях веселая чехарда с версиями библиотек и клиента, но теоретически возможно.

    Могу предложить попробовать разнести (если сейчас не так) на разные машины (конечно виртуалка/докер) сервер и клиент для php, так как инсталлятор oracle может плохо обрабатывать такие ситуации.

    p.s. если не сумеете побороть, пилите прослойку, благо работы на вечер, т.е. буквально http (или даже websocket) сервер на самом php (осторожно с многопоточностью) старой версии работает исключительно для выполнения запросов и сериализацию ответа. Накладные расходы конечно будут (не обязательно большие) но дальше уже вопрос что вам важнее - затраты на разработку или затраты на железо и главное у вас будет возможность подправить эту прослойку для оптимизации.

    Не уверен но есть шанс что данная прослойка уже существует (http => sql), ищите.
    Ответ написан
    Комментировать
  • Как писать данные из триггера Oracle в memcache?

    @rPman
    начните работу с этой кнопки ;)
    www.datadisk.co.uk/html_docs/oracle/external_procedures.htm

    p.s. настоятельно рекомендую еще раз продумать архитектуру вашего приложения… что то грустное у вас получается, а как станет грустно тем кто будет ваше приложение поддерживать в будущем.
    Ответ написан
    Комментировать