|
|
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
В функцию передается два численных массива. Надо вставить их в таблицу, каждый массив в свою колонку. Количество элементов в массиве одинаково. Например, первый массив [1,2,3,4], второй [5,6,7,8]. В таблице тест должно быть четыре записи, первая (1,5), вторая (2,6) и т.д. Мое решение мне не нравится. Ничего не могу придумать, кроме как получить длину массива и организовать цикл по элементам, на каждой итерации выполняя insert. А хотелось бы одним insert .. from .. . Unnest здесь тоже не помогает, т.к. не может преобразовать в двумерный массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 13:55:18 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
Mikhail S., где тут двумерный массив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:06:45 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
V&N, Тут его нету, но если бы его динамически получить на основании двух входных массивов, можно было бы массовой операцией вставить в таблицу. В общем, это мысли в слух. Условие изложены в первом абзаце. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:13:12 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
Mikhail S., давайте код, который не нравится. unnest должен работать. Код: plsql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:23:13 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
V&N, решение было примерно таким. Хотел оформить без цикла. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 14:57:45 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
V&N, второй ваш запрос выкидывает ошибку ОШИБКА: в выражении с функцией во FROM нельзя ссылаться на другие отношения на том же уровне запроса LINE 4: generate_series(1, greatest(array_length(foo.a,1), ar... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:16:15 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
Получилось оформить без цикла Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. V&N, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:17:56 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
Mikhail S., у меня работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:19:54 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
V&N, Возможно, у из-за версии. Мы используем версию 9.1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:24:02 |
|
||
|
работа с массивами
|
|||
|---|---|---|---|
|
#18+
Mikhail S., Код: plaintext 1. 2. 3. 4. вместо generate_series можно использовать generate_subscripts. новые версии >= 9.3 хавают из-за фичи LATERAL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2014, 15:28:51 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=38662567&tid=1998641]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
181ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 472ms |

| 0 / 0 |
