Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Только начал изучать хранимые процедуры и сразу появились вопросы Как получить данные из процедуры которая join-нит таблицы , тоесть для одной таблицы всё просто Код: plaintext 1. 2. 3. 4. 5. 6. Как сделать чтобы получить данные из такого запроса Код: plaintext Сильно подозреваю что надо использовать record либо создать новый тип , но что-то никак не осилю :( И второй вопрос Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Сообщает об ошибке авторERROR: syntax error at or near "(" LINE 1: select $1 (*) from "User" ^ QUERY: select $1 (*) from "User" CONTEXT: SQL statement in PL/PgSQL function "count_users" near line 4 ********** Error ********** ERROR: syntax error at or near "(" SQL state: 42601 Context: SQL statement in PL/PgSQL function "count_users" near line 4 Тоесть я просто хочу получить количство записей в таблице "Users" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 20:05 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
называть локальные переменные созвучно со встроенными функциями/ключевыми словами/таблицами - плохая идея ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 20:38 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
во втором случае переменная вообще не нужна Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 22:32 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
по первому вопросу: а почему view не подходит, если все что делает процедура это select ... join ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 22:34 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Дело не в то что view не подходит , этот пример не из жизни , просто случаются ситуации когда надо join'нить таблицы в нутри процедуры и возвращать результат этого join Да действительно называть переменные созвучно со встроенными функциями/ключевыми словами/таблицами идея это плохая Спасибо :) Но первый вопрос остаётся в силе И появился новый вопрос Цель получить ограниченое количество результатов из общего количества найденых строк и число всех результатов удовлетворивших запросу тоесть аналог MySQL'ного SQL_CALC_FOUND_ROWS 1) первое обращение к базе BEGIN; DECLARE curs SCROLL CURSOR FOR SELECT * FROM "User" WHERE name like '%john%' 2) втроое обращение (получить количество всех результатов) MOVE FORWARD ALL IN curs; 3) третие обращение MOVE ABSOLUTE $offset IN curs; 4) получить несколько строк из общего результата FETCH $limit FROM curs; 5) COMMIT так вот думается мне что эффективнее былобы делать все эти операции в процедуре но как вернуть из процедуры общее число найденых результатов (int) и сами результаты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2008, 22:47 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
по первому вопросу, т.е. как вернуть результат селекта из функции Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. RETURN NEXT это основная конструкция с помощью которой можно отдавать набор значений. использование: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2008, 22:22 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Это как-то не очень удобно , делать view только чтоб вернуть нужный набор данных из процедуры :( Но всёравно спасибо за ответ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 11:50 |
|
||
|
join в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
sisqoЭто как-то не очень удобно , делать view только чтоб вернуть нужный набор данных из процедуры :( Но всёравно спасибо за ответ :) Konstantin~... Это можно сделать определив -- таблицу, новый тип данных или view. .. CREATE TYPE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2008, 12:34 |
|
||
|
|

start [/forum/topic.php?fid=53&gotonew=1&tid=2004025]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
106ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 456ms |

| 0 / 0 |
