Хочется выписать небольшой примерчик. Понимаю, что для многих он слишком простой и задачка тривиальная, но когда занимаешься скриптами целый день, к вечеру мозг выключается. Поэтому я запишу решение.
Итак - у нас есть табличка, в ней числовые данные, но тип у них VARCHAR2.
Надо их переложить в другую таблицу, а потом еще раз переложить, но добавив к значениям 10 (20, 30 - не важно), чтобы не дублировать значения.
Проверяем на маленьком объеме (модульное тестирование).
Создаем таблички
create table test (id number, data VARCHAR2(60 byte));
create table test_data (id number, data VARCHAR2(60 byte));
insert into test values (1, 1);
insert into test values (2, 2);
insert into test values (3, 3);
commit;
Проверяем, что получилось:
select * from test;
select * from test_data;
Вот и все
Итак - у нас есть табличка, в ней числовые данные, но тип у них VARCHAR2.
Надо их переложить в другую таблицу, а потом еще раз переложить, но добавив к значениям 10 (20, 30 - не важно), чтобы не дублировать значения.
Проверяем на маленьком объеме (модульное тестирование).
Создаем таблички
create table test (id number, data VARCHAR2(60 byte));
create table test_data (id number, data VARCHAR2(60 byte));
insert into test values (1, 1);
insert into test values (2, 2);
insert into test values (3, 3);
commit;
Проверяем, что получилось:
select * from test;
select * from test_data;
Заполняем таблицу test_data значениями таблицы test
insert into test_data (data)
select data from test;
commit;
А теперь нам надо добавить к ним какое-то число.
Для этого мы берем строку, конвертируем ее в число, добавляем 10, а потом конвертируем обратно в строку.
insert into test_data (data)
(select to_char(to_number(data)+10) from test);
commit;
Вот и все
а где же функция, найденная на просторах сети и обход косяков в ней?
ОтветитьУдалитьПотом, все потом :)
Удалить