Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Объединение столбцов с определенным количеством символов  [new]
Lilzen
Member

Откуда:
Сообщений: 26
Здравствуйте знатоки oracle... Прошу помощи! Прилетела мне задача с которой не знаю как справится!
К делу есть таблица с большим количеством столбцов
Из нее селектом выводиться все записи. Задача в том чтобы сделать конкатенации всех столбцов с одним НО!! Текстовые поле при конкатенации должно быть по длине столько знаков сколько объявлено при создании таблицы.... То есть если поле текстовое varchar2(30) то и при сцепке должно вернуться 30 символов.... Вариант типа использовать nvl мне не подходит... Столбцов очень много таблиц тоже... Как быть?
25 мар 20, 13:00    [22105652]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов с определенным количеством символов  [new]
Vadim Lejnin
Member

Откуда:
Сообщений: 6921
Lilzen
Здравствуйте знатоки oracle... Прошу помощи! Прилетела мне задача с которой не знаю как справится!
К делу есть таблица с большим количеством столбцов
Из нее селектом выводиться все записи. Задача в том чтобы сделать конкатенации всех столбцов с одним НО!! Текстовые поле при конкатенации должно быть по длине столько знаков сколько объявлено при создании таблицы.... То есть если поле текстовое varchar2(30) то и при сцепке должно вернуться 30 символов.... Вариант типа использовать nvl мне не подходит... Столбцов очень много таблиц тоже... Как быть?


Думать, над постановкой задачи, правильный вопрос - 80% ответа

1) Для начала, перечитайте, что Вы написали:
> Из нее селектом выводиться все записи. Задача в том чтобы сделать конкатенации всех столбцов...
Есть два поля, A varchar2(30) и B varchar2(40), какой должна быть длина общего поля?
Какая часть одного и второго столбца, должна быть в сцепке A + substr(B,1,10)?

2)
> Столбцов очень много таблиц тоже... Как быть
Написать на SQL/PLSQL генератор запросов
-- простейший случай, когда структура известна
set page 0 line 4096 trimspool on feed off 
spool tmp.sql
select 'select substr('||c.column_name||',1,'||c.DATA_LENGTH||'),...' as cmd from user_tab_columns where...


p.s.

Студентам, желающим помощи
HOWTO :: Как правильно задавать вопросы
Как мне оформить свое сообщение?

Если хотите, чтобы Вам помогли, задайте вопрос правильно:

1) Полная постановка задачи (без сокращений)
2) Подготовьте тестовые данные, лучше в виде with
например (не ваш случай):

with tbl(col1,col2,col3) as (
select 1,'name1',to_date('11.02.1921','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual union all
select 2,'name2',to_date('11.02.1922','DD.MM.YYYY') from dual
)
select col2 from tbl...


2) Покажите что сделали, и что получили (не в пересказе)


3) Старайтесь не использовать screenshot, научитесь копировать и оформлять текст


В этом случае Вам обязательно помогут
25 мар 20, 13:18    [22105673]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов с определенным количеством символов  [new]
Stax
Member

Откуда: Ukraine,Lviv
Сообщений: 2260
Lilzen,

насколько помню sql*plus по умолчанию и берет длину из словаря
главное вместится в
You can define LINESIZE as a value from 1 to a maximum that is system dependent.

pss
генерить скрипт програмно

зы
+всякие long,clob,xml, ...

.....
stax
25 мар 20, 13:20    [22105674]     Ответить | Цитировать Сообщить модератору
 Re: Объединение столбцов с определенным количеством символов  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 29738
Lilzen
Как быть?
Платить тому/тем, кто захочет понимать, поймёт и поможет.
25 мар 20, 13:24    [22105679]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить