Питання: Підкажіть, як отримати в Oracle список всіх первинних ключів у вигляді: [id_column], [id_table]
Відповідь: select col.column_name, con.table_name from user_constraints con, user_cons_columns col where col.constraint_name = con.constraint_name and con.constraint_type = 'P';
Це буде поіменний перелік. Ідентифікатори таблиць можна взяти з user_tables, а стовпців - з user_tab_columns.
Питання: Як правильно вибрати кодову сторінку при інсталяції?
При інсталяції необхідно вибирати "Русский", навіть якщо це пробна установка.
Однак часто ще зустрічаються СУБД Oracle з встановленої CHARSET = WE8ISO8859P1 за замовчуванням. Іноді це робиться через незнання, частіше з думкою, що ця інсталяція тимчасова, ніколи не пізно буде змінити; а деякі версії, наприклад, що розповсюджувалася через Інтернет trial версія Personal Oracle for Windows 3.1, не мали локальних кодувань.
Коли при цьому реально виникають проблеми:- коли система переноситься на платформу з іншого основним кодуванням,
- коли необхідно реекспортувати в таку систему кілька таблиць з іншого кодуванням,
- незручності типу неможливості переведення в інший регістр російських 'Ч' і 'Я' (тимчасово можна коригувати написанням локалізованих версій функцій RLOWER () і RUPPER ()).
На жаль Oracle Corp. не передбачила легальних (документованих) способів зміни кодувань СУБД і додатків
Питання: Як можна вирішити проблеми, пов'язані з невірно заданої кодової сторінкою?
відповідь:- Зміна DATABASE CHARSET
Перекодування даних тут не відбувається, змінюється лише позначка для Oracle. Ви повинні точно представляти в якому кодуванні ваші дані знаходяться.
Перш, ніж використовувати цей метод перевірте, чи присутній необхідна вам кодування в списку допустимих.
SQL> select value from V $ NLS_VALID_VALUES