убрать из названий колонок "COLUMN_NAME" ковычки

GorbunovS
Дата: 21.02.2007 08:51:14
А можно написать что-то типа этого:
update ALL_IND_COLUMNS ic set COLUMN_NAME=replace(COLUMN_NAME,'"','')
where INDEX_OWNER='USER'
Есть мысли?
Просто у нас таблицы создаются через гетерогенное соединение, как create as select * from ttt@Pervasive и в названия колонок становятся в ковычках "COLUMN_NAME".
Бабичев Сергей
Дата: 21.02.2007 08:53:52
Ну попробуй.

З.Ы.
Любые действия по "ручному" изменению данных системного словаря чреваты последствиями...
Elic
Дата: 21.02.2007 08:57:45
GorbunovS
Просто у нас таблицы создаются через гетерогенное соединение, как create as select * from ttt@Pervasive и в названия колонок становятся в ковычках "COLUMN_NAME".
Значит надо создавать так:
create table t(col1, col2, ..., colN) as select * from ttt@Pervasive
GorbunovS
Дата: 21.02.2007 09:07:01
я понимаю, что можно- я говорю о том, что уже создано и переделывать трудоемко- 50 таблиц с 10-20 полями, это неслабо так нужно потрудится с alter table или create переписать.
Плюс, для меня очень интересна структура исходника- а вдруг коллеги поменяли структуру? и у меня в DWH не будет нужного поля?
Неужели автоматом такое сделать нельзя, задача совершенно тупая, если вручную.
Бабичев Сергей
Дата: 21.02.2007 09:13:48
GorbunovS
я понимаю, что можно- я говорю о том, что уже создано и переделывать трудоемко- 50 таблиц с 10-20 полями, это неслабо так нужно потрудится с alter table или create переписать.
50 таблиц - легко переделать даже вручную. А если к этому "нелегкому" делу привлечь тот же системный словарь, то задача вообще сведется к одному запросу, формирующему необходимый скрипт, + выполнение этого скрипта...
Elic
Дата: 21.02.2007 09:20:34
GorbunovS
Плюс, для меня очень интересна структура исходника- а вдруг коллеги поменяли структуру? и у меня в DWH не будет нужного поля?
Неужели автоматом такое сделать нельзя, задача совершенно тупая, если вручную.
Автоматизация до создания: RTFM dbms_sql.describe_columns
Автоматизация после: RTFM all_tab_columns + alter table ... rename column
GorbunovS
Дата: 21.02.2007 09:25:14
Мысль здравая, ОК, убедили. Сгенерю alter table автоматом после создания и запущу.
Elic
Дата: 21.02.2007 09:30:17
GorbunovS
Сгенерю alter table автоматом после создания и запущу.
Лучше "до" сгенерить правильные скрипты создания.
GorbunovS
Дата: 21.02.2007 09:38:49
Плюс, для меня очень интересна структура исходника- а вдруг коллеги поменяли структуру? и у меня в DWH не будет нужного поля?
- эта часть для меня тоже важна, так как ребята, формирующие из этих таблиц, отчет никогда не смогут увидеть новые поля. А так я им дам нормальную копию структуры из исходника+не буду париться с отслеживанием изменения структуры в исходнике.
Поэтому планирую:
1. create tab as select from t@ttt
2. alter table tab rename column "c1"=c1;
alter table tab rename column "c2"=c2;
.......
Бабичев Сергей
Дата: 21.02.2007 09:49:16
GorbunovS
Поэтому планирую:
1. create tab as select from t@ttt
2. alter table tab rename column "c1"=c1;
alter table tab rename column "c2"=c2;

.......
Только предварительно ознакомся с правильным синтаксисом этой команды...