select * from v$version;
печатает:Как проверить, является ли текущая СУБД Oracle версией Enterprise?
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
...
Теперь я хотел бы проверить, если текущая СУБД Oracle является версия Enterprise (только Enterprise версии без версии ЭСТ.)?
DECLARE
VAR_CURRENTVERSION VARCHAR(500);
BEGIN
SELECT * INTO VAR_CURRENTVERSION FROM v$version;
IF (VAR_CURRENTVERSION = 'ENTERPRISE_EDITION') THEN
SYS.DBMS_OUTPUT.PUT_LINE('You have Enterprise Oracle Edition Version');
ELSE
SYS.DBMS_OUTPUT.PUT_LINE('You have Normal Oracle Edition Version');
END IF;
END;
/
Является ли в Oracle любым макросом, например "ENTERPRISE_EDITION"?
Нет. Очевидно, вы можете сделать запрос типа 'like' против' v $ version'. Вы можете поместить эту проверку в свою собственную функцию. PL/SQL не имеет понятия макроса. Имейте в виду, что существуют угловые случаи, когда данные 'v $ version' не дживут с тем, что на самом деле установлено. –