|
|
|
Как правильно юзать массивы внутри хранимых функций
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток, прошу помочь разобраться, как правильно пользоваться массивами внутри хранимой функции. Собственно хранимая функция: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. Создается без ошибок, а при попытке выполнения выдает: ОШИБКА: тип integer - не массив и для него нельзя указать индекс элемента CONTEXT: SQL-оператор: "INSERT INTO network(master_network_id, name, display_type, internal_type, color, id_map, id_status) VALUES (1, 'snmp_network', 'Сеть PDH (NP)', 'NP', '#655ae2', id_db_map, 2) RETURNING id [0]" функция PL/pgSQL import_map_2014_10_07__14_22_52(), строка 15, оператор SQL-оператор ********** Ошибка ********** ОШИБКА: тип integer - не массив и для него нельзя указать индекс элемента SQL-состояние: 42804 Контекст: SQL-оператор: "INSERT INTO network(master_network_id, name, display_type, internal_type, color, id_map, id_status) VALUES (1, 'snmp_network', 'Сеть PDH (NP)', 'NP', '#655ae2', id_db_map, 2) RETURNING id [0]" функция PL/pgSQL import_map_2014_10_07__14_22_52(), строка 15, оператор SQL-оператор Что неверно? Как правильно объявить и использовать целочисленный массив в данном случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 11:45:45 |
|
||
|
Как правильно юзать массивы внутри хранимых функций
|
|||
|---|---|---|---|
|
#18+
Josefina, мне кажется что тут вот авторid_db_network ARRAY INTEGER[]; слово ARRAY лишнее и надо просто писать id_db_network INTEGER[]; PS: я вообще не уверен что конструкция авторRETURNING id INTO id_db_network[0]; - поддерживается в принципе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 13:03:22 |
|
||
|
Как правильно юзать массивы внутри хранимых функций
|
|||
|---|---|---|---|
|
#18+
Maxim Boguk, да, слово ARRAY убрала. Если вместо этой конструкции сохранять возвращаемое значение просто в переменную, то оно успешно сохраняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 13:30:52 |
|
||
|
Как правильно юзать массивы внутри хранимых функций
|
|||
|---|---|---|---|
|
#18+
Отписываюсь, проблема решена, работу с массивом приходится делать через промежуточную переменную, которая участвует в запросах вставки. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 09:52:51 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=122&tid=1998445]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
301ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 584ms |

| 0 / 0 |
