Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
собственно сабж ... пишу процедуру с EXECUTE что бы выполнить динамический SQL в зависимости от входного параметра ... сам по себе SELECT работает, может что то с типом перемудрил, но с ним вроде тоже всё в порядке..... Код: plaintext текст ошибки: "cannot use RETURN NEXT in a non-SETOF function at or near NEXT at character 824" a_professor_id - входной параметр. тип: Код: plaintext 1. 2. 3. 4. 5. 6. тело процедуры: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 13:39 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
Тело процедуры как раз не имеет никакого значения. Тип возврата функции должен быть определен как Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 13:48 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
MetaТело процедуры как раз не имеет никакого значения. Тип возврата функции должен быть определен как Код: plaintext да, спасибо :) другой вопрос :\ что то при выполнении процедуры Код: plaintext если напрямую вписать SQL то всё начинает работать :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:14 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
JackS wrote: > ему видимо не нравится длинный стринг SQL запроса или в чём дело? > > NOTICE: identifier > "SELECT кавычки должны быть одинарные :) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:18 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
кроме того, что кавыки должны быть адинарны (ибо двойные -для айдентифайров), не понял, зачем через ... кхм... екзекьют? На случай пересоздания таблиц/ключей (каковые входят в откомпилированный запрос по ОИД).Или просто от желания сделать красивше? Вы ведь ничего изменяемого в строку не вставляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:25 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
и опять спасибо :) но помогло отчасти ... все двойные в стрингах закменил на одинарные ... при передаче 0 всё зломечательно но при передаче >0 теперь ругается на то что после канкатенации неизвестное поле a_professor_id ... то есть при EXECUTE он не подставляет значение передаваемой переменной ... :( как с этим бороться ? Код: plaintext P.S.: вот он последний рубеж, и будет мне счастье :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:26 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
кхых, разглядел таки апендикс, но part_SQL varchar := " AND time_boards.professor_id = "|| a_profesor_id; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:28 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321кроме того, что кавыки должны быть адинарны (ибо двойные -для айдентифайров), не понял, зачем через ... кхм... екзекьют? На случай пересоздания таблиц/ключей (каковые входят в откомпилированный запрос по ОИД).Или просто от желания сделать красивше? Вы ведь ничего изменяемого в строку не вставляете? а EXECUTE для того что я формирую запрос в зависимости от передаваемого в функцию параметра .... если есть вариант как сделать без EXECUTE, то только спасибо скажу ... :) за одно как сделать, если возможно, что бы если я ничего не передаю в функцию при её вызове select * from get_time_boards(32); то переменной автоматом присваивался "0", что то а-ля Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:30 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321кхых, разглядел таки апендикс, но part_SQL varchar := " AND time_boards.professor_id = "|| a_profesor_id; а не помогает :( пробовал ... и с " " и с ' ' .... и при декларации и внутри IF :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:35 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ЗЗЫ Динамо типа Екзекьют нужно для передачи в СКЛ _вычислимых_ _идентификаторов_, или даже служебных слов самого СКЛ. Или на случай возможности многократного срубания праймари кеев (специфические задачи с массовой заливкой/дропаньем данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:40 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
помогает ... просто я так и скопировал profesor с одним "с" :) остался вопрос возможно ли сделать так что бы при вызове с пустым параметром присваивался ноль или что то вроде этого ... есть идея создать процедуру с тем же именем но без параметра в которой будет вызываться SELECT * FROM get_time_boards(0); :) ? но может есть что то получше ? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:42 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
JackS 4321кхых, разглядел таки апендикс, но part_SQL varchar := " AND time_boards.professor_id = "|| a_profesor_id; а не помогает :( пробовал ... и с " " и с ' ' .... и при декларации и внутри IF :( a_profesor_id - это имя параметра из описания ф-ии? (как я думал) Или фихзнаитшто?. Тогда попробуйте part_SQL := " AND time_boards.professor_id = "|| $1::varchar; кстати, что будет, если a_profesor_id IS Null ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:44 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321 Код: plaintext 1. 2. ЗЗЫ Динамо типа Екзекьют нужно для передачи в СКЛ _вычислимых_ _идентификаторов_, или даже служебных слов самого СКЛ. Или на случай возможности многократного срубания праймари кеев (специфические задачи с массовой заливкой/дропаньем данных). а разве в Вашем варианте он не будет ругаться что я вызываю процедуру без параметра ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:45 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
(a_professor_id=0) OR (a_professor_id=0 IS NULL) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:46 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
JackS а разве в Вашем варианте он не будет ругаться что я вызываю процедуру без параметра ? а не пойти бы вам покурить доку? ЗЗЫ на каждый ТИП вызова (т.е. набор и тип (если не кастятся автокастом) параметров) надо создать ОТДЕЛЬНУЮ одноименную ф-ю - так типа риализуецца "перекрытие оперделения" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:49 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321 JackS 4321кхых, разглядел таки апендикс, но part_SQL varchar := " AND time_boards.professor_id = "|| a_profesor_id; а не помогает :( пробовал ... и с " " и с ' ' .... и при декларации и внутри IF :( a_profesor_id - это имя параметра из описания ф-ии? (как я думал) Или фихзнаитшто?. Тогда попробуйте part_SQL := " AND time_boards.professor_id = "|| $1::varchar; кстати, что будет, если a_profesor_id IS Null ? аха .. это я просто обшибся :) а при select * from get_time_boards(NULL); будут записи для всех преподов ... всё равно что select * from get_time_boards(0); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:49 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321(a_professor_id=0) OR (a_professor_id IS NULL)очипятка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 14:50 |
|
||
|
процедура со своим типом "cannot use RETURN NEXT in a non-SETOF..."
|
|||
|---|---|---|---|
|
#18+
4321 4321(a_professor_id=0) OR (a_professor_id IS NULL)очипятка не совсем понятно в честь чего это, ну да ладно сделал по своему варианту ... :) всем спасибо за помощь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.08.2005, 16:12 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33205778&tid=2007080]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
131ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 457ms |

| 0 / 0 |
