Следующий код генерирует операторы alter password для изменения всех стандартных паролей в базе данных Oracle. В версии 12.1.0.2.0 больше невозможно изменить его на неверные значения пароля. Вот почему мне пришлось построить эту конструкцию корпуса переключателя. Жаба выдает предупреждение (правило 5807) о конструкции соединения в конце. В нем говорится: «Избегайте декартовых запросов — используйте предложение where...». Любые идеи о предложении «где», которое работает на всех версиях базы данных оракула?
SET TERMOUT OFF
SET ECHO OFF
SET LINESIZE 140
SET FEEDBACK OFF
SET PAGESIZE 0
SPOOL user.sql
SELECT 'alter user '
|| username
|| ' identified by values '
|| CHR (39)
|| CASE
WHEN b.version = '12.1.0.2.0' THEN '462368EA9F7AD215'
ELSE 'Invalid Password'
END
|| CHR (39)
|| ';'
FROM DBA_USERS_WITH_DEFPWD a,
(SELECT DISTINCT version
FROM PRODUCT_COMPONENT_VERSION) b;
SPOOL OFF
@user.sql