|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Добрый день, я начинающий пользователь pl sql, подскажите пожалуйста, как можно решить подобную задачу. Есть таблица, которую нужно обработать, имеет 5 столбцов: col1,col2,col3,col4,col5: create table test ( col1 varchar2(100), col2 varchar2(100), col3 varchar2(100), col4 varchar2(100), col5 varchar2(100)); insert into test (col1,col2,col3,col4,col5) values ('1', '123', '123','10.06.2019','234') insert into test (col1,col2,col3,col4,col5) values ('456', '3', '156','10.07.2019','2') insert into test (col1,col2,col3,col4,col5) values ('3', '123', '23','10.08.2019','234') В столбце col4 находится дата - проблема в том, что дата может находится каждый раз в разном столбце, алгоритм обработки нужен универсальный, как можно пройтись поочередно по всем столбцам таблицы и определить в каком столбце все записи длиной 10 (length(coln) = 10), запомнить имя столбца и дальше его передать в select, который будет уже обрабатывать таблицу? Заранее спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 11:15 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 13:56 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
задача как раз для начинающего чтобы изучил форматы текстовых представлений дат, подумал о NLS и всякой прочей фигне например, является ли датой строка 31-02-2020 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2020, 15:00 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
dasha07 дата может находится каждый раз в разном столбце, алгоритм обработки нужен универсальный, как можно пройтись поочередно по всем столбцам таблицы и определить в каком столбце все записи длиной 10 (length(coln) = 10) Т.е. это тоже дата? Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 09:29 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Synoptic Т.е. это тоже дата? Код: plsql 1.
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 10:00 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
dasha07, задача какая-то слишком учебная =) действительно, определять, является ли столбец датой по его длине - путь в никуда. Можно написать примерно такую функцию, прописав в ней все допустимые по задаче форматы даты Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
затем достаточно, наверное, обработать только первую строку таблицы, определить, в каком столбце дата, запомнить его название и выплюнуть table с этим столбцом, приведенным к дате. для этого придется почитать про табличные функции, например Oracle – табличные конвейерные функции ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 11:19 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
chidoriami затем достаточно pl/sql здесь незачем. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 11:35 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
chidoriami Код: plsql 1.
уверены, что так надо писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 12:38 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls chidoriami Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 13:18 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Elic alex-ls пропущено... уверены, что так надо писать? зачем же "ловить" others, когда цель конкретная ошибка? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 13:42 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls конкретная ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 13:46 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
одну нет конечно, их там "кучка" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:00 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
-2-, ну вообще да, можно и запросом обойтись. там че-то не совсем понятно, какой результат ожидаем ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:01 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls одну нет конечно, их там "кучка" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:16 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Elic alex-ls одну нет конечно, их там "кучка" Я не говорил что надо без него обойтись. Мне не понравилось, что нет логирования или перечисления ошибок, которые сработали, т.е. понять постфактум, что произошло не получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:22 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls что произошло не получиться ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:36 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
-2- alex-ls что произошло не получиться логирование и покажет, что произошло. например 01.99.2020 будет неверный месяц ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 14:49 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls Мне не понравилось, что нет логирования или перечисления ошибок, которые сработали, т.е. понять постфактум, что произошло не получиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 15:36 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
все зависит от нашей цели =) нафига тут логировать ошибки, если мы собираемся использовать это в запросе и искать таким образом валидные даты? мы ж применим эту функцию ко всем столбцам, и в них полный расколбас ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 15:50 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
chidoriami все зависит от нашей цели =) нафига тут логировать ошибки, если мы собираемся использовать это в запросе и искать таким образом валидные даты? мы ж применим эту функцию ко всем столбцам, и в них полный расколбас лет 5 или 6 пока не свалилась ошибка на 30-м февраля ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:03 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Cast(... On conversion error...) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 16:33 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
Elic alex-ls Мне не понравилось, что нет логирования или перечисления ошибок, которые сработали, т.е. понять постфактум, что произошло не получиться. да тут признаю. в голове одно, а цитирую немного не то. не в первый раз уже... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 17:37 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
alex-ls -2- пропущено... Допустим, по приведенным автором данным залогировалось 12 разнообразных ошибок. Что же произошло?? логирование и покажет, что произошло. например 01.99.2020 будет неверный месяц И не объясняет, зачем вообще нужно знать про наличие некорректных значений. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 17:39 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
xtender Cast(... On conversion error...) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2020, 20:47 |
|
Поиск столбца в таблице с помощью цикла plsql
|
|||
---|---|---|---|
#18+
-2- alex-ls пропущено... логирование и покажет, что произошло. например 01.99.2020 будет неверный месяц И не объясняет, зачем вообще нужно знать про наличие некорректных значений. когда это реальное, а не тестовое задание, то надо знать в 99% почему не сконвертировалось в дату, иначе зачем конвертировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2020, 02:53 |
|
|
start [/forum/topic.php?fid=52&msg=39921902&tid=1881593]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 163ms |
0 / 0 |