Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сконвертить базу cp1251 → UTF-8 / 2 сообщений из 2, страница 1 из 1
15.03.2010, 17:36
    #36521601
dvska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сконвертить базу cp1251 → UTF-8
Добрый день, коллеги

Подскажите наименее трудозатратный способ конвертации БД из кодировки Win-1251 в UTF-8
(DB2 v9.5 fp4 Win2003, сотни таблиц)

Пока вижу вариант --
скриптом пробежаться по "SYSCAT"."COLUMNS" и нагенерить ALTER TABLE ttt ALTER COLUMN ttt_col1 SET DATA TYPE VARCHAR ( old_len * 2 );

затем смигрировать данные import-ами.
...
Рейтинг: 0 / 0
15.03.2010, 21:21
    #36521985
dvska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сконвертить базу cp1251 → UTF-8
"Расширитель" текстовых столбцов (Python)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
# -*- coding: UTF- 8  -*-
import pyodbc

SCHEMAS = ('NSI','NSITEMP','NSICTRL',)

cur = pyodbc.connect('DSN=nsiii').cursor()
cur.execute('''
    select rtrim(TABSCHEMA), TABNAME, COLNAME, TYPENAME, LENGTH
    from SYSCAT.COLUMNS
    where TABSCHEMA in (%s) and TYPENAME in ('CHARACTER','VARCHAR')''' %
    ','.join("'%s'"% sch for sch in SCHEMAS)  )

for TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH in cur.fetchall():
    print('ALTER TABLE %s.%s ALTER COLUMN %s SET DATA TYPE %s(%d);' %
          (TABSCHEMA, TABNAME, COLNAME, TYPENAME, LENGTH* 2 )            )
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Сконвертить базу cp1251 → UTF-8 / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]