Как я могу определить Oracle XE? - PullRequest
1 голос
/ 14 сентября 2009

Мы используем локальные XE для быстрой разработки, но развертываем на «настоящих» оракулах. Некоторые из наших скриптов используют индексы секционирования и растрового изображения, и мы хотели бы пропустить эти части для XE, поскольку они не поддерживаются, но без отдельного набора скриптов. Есть ли какой-нибудь SQL, который мы можем использовать, чтобы обнаружить, что сценарий выполняется на XE, чтобы мы могли скорректировать операторы?

Ответы [ 2 ]

3 голосов
/ 14 сентября 2009

Одно из следующих действий, скорее всего, даст вам то, что вам нужно:

select * from v$version 

select * from product_component_version

XE, скорее всего, появится здесь, и вы можете проверить наличие этой строки.

Бесстыдно сорвал с здесь

1 голос
/ 14 сентября 2009

Я столкнулся с той же проблемой. Мое решение состояло в том, чтобы встроить эти специфические функции версии в анонимные блоки и проверить на наличие определенных кодов ошибок. Примерно так:

BEGIN
    EXECUTE IMMEDIATE 'CREATE BITMAP INDEX myIndex ON myTable';
EXCEPTION
    WHEN OTHERS THEN
        IF SQLCODE=-439 THEN -- bitmap index not supported
            EXECUTE IMMEDIATE 'CREATE INDEX myIndex ON myTable';
        END IF;
END;

Не совсем то, о чем вы просили, но у меня это работает очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...