|
User defined functions
|
|||
---|---|---|---|
#18+
как запускать чтобы проверить результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2005, 23:36 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Запускать - просто в CLP. Если процедура типа: Код: 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. 29. 30. 31.
а чтобы протестировать функцию существует выражение values Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.06.2005, 09:47 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Спасибо. А есть ли тип данных table? Что-то я не нашел в хелпе... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2005, 16:45 |
|
User defined functions
|
|||
---|---|---|---|
#18+
м да спросил :) вернее может ли UDF возвратить данные в таблице? что-то типа Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.06.2005, 17:48 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Либо через рекодсет (их может быть несколько) Либо через временную таблицу, которую сама же может создать... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 11:03 |
|
User defined functions
|
|||
---|---|---|---|
#18+
есть табличные функции. или тут мешанина терминов функции <> процедуры это вот такая хренотень: Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 11:28 |
|
User defined functions
|
|||
---|---|---|---|
#18+
gardenmanЛибо через рекодсет (их может быть несколько) Либо через временную таблицу, которую сама же может создать... а как обьявляются переменные, есть ли аналог datalength или ссылку на справочник мона? пишу так не получается... Код: 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
зарание спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 15:31 |
|
User defined functions
|
|||
---|---|---|---|
#18+
собачки у переменных - убери... этож не SQL server... туп в форуме поищи "CREATE PROCEDURE" - примерчики найдешь, и еще cookbook тебе в помощь... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 16:20 |
|
User defined functions
|
|||
---|---|---|---|
#18+
gardenmanсобачки у переменных - убери... этож не SQL server... туп в форуме поищи "CREATE PROCEDURE" - примерчики найдешь, и еще cookbook тебе в помощь... и на том спасибо... кукбук мне уже дали :) буду посматреть... а так на вскидку не скажете на счет datalength есть она в db2 ну или аналог? спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 16:40 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2005, 16:44 |
|
User defined functions
|
|||
---|---|---|---|
#18+
спасибо, начинаю вьезжать :) но можно спец. для тех кто в танке как мне обраться к возвращаемой таблице чтобы заполнить ее? нужно ли создавать временную, если да то зачем? Код: 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. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 15:40 |
|
User defined functions
|
|||
---|---|---|---|
#18+
http://www.sql.ru/forum/actualthread.aspx?tid=179429&hl=locator#1499443 Это если нужно много рекрдсетов возвращать. А в противном случае лучше просто создать табличную функцию. http://publib.boulder.ibm.com/infocenter/db2help/topic/com.ibm.db2.udb.doc/admin/r0003493.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 16:01 |
|
User defined functions
|
|||
---|---|---|---|
#18+
блин кто-то очень плотно закрыл все люки :) мне нужно что-то типа Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
пример Split('blablabla', 'a') result idnum svalue 1 bl 2 bl 3 bl так нужно создавать временную таблицу в самой функции и пехать туда данные или нет? вообще не доганяяю :( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 16:38 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Ну вот же пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 17:24 |
|
User defined functions
|
|||
---|---|---|---|
#18+
gardenmanНу вот же пример: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
мм да похоже дело труба :( можно подробнее что такое AUDIT? физически сущю табл. в которую записывают записи? и еще можно расшифровать это: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 17:53 |
|
User defined functions
|
|||
---|---|---|---|
#18+
распарсить строку - это можно сделать рекурсивно оператором WITH или - написать C/C++ табличную ф-цию... там можно чё угодно сделать... и работать будет - реактивно... AUDIT - действительно - таблица || - оператор конкатенации строк... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 18:05 |
|
User defined functions
|
|||
---|---|---|---|
#18+
gardenmanраспарсить строку - это можно сделать рекурсивно оператором WITH или - написать C/C++ табличную ф-цию... там можно чё угодно сделать... и работать будет - реактивно... AUDIT - действительно - таблица || - оператор конкатенации строк... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
огромное спасибо за ответы и помощь. так я вроде так и парсю : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
задать значение поле id временной таблицы TEMPTABLE в AUTONUMBER? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2005, 18:19 |
|
User defined functions
|
|||
---|---|---|---|
#18+
Насколько мне известно - с временными таблицами (в полном понимании этого слова) в UDF работать нельльзя: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
поэтому есть варианты: 1) это должна быть не ф-ция, а процедура 2) это должна быть табличная ф-ция написанная на С/С++ 3) это д.б. табличная ф-ция заканчивающаяся full-select На счет автонумерации - рассмотрите варианты: 1) рекурсивная нумерация прямо в запросе 2) поищите тут по форуму ф-цию counter - реализацию на С/С++ - в жизни пригодится 3) рассмотрите SEQUENCE, IDENTITY, ROW_NUMBER() OVER() ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 09:49 |
|
User defined functions
|
|||
---|---|---|---|
#18+
может я понимаю не верно значение временной табл.... однако можно ли сделать так: в UDF с возвращаемым типом "Таблица" распарсить строку (входной параметр)и вернуть ее той же UDF но в табличном виде входные пар. Split('blablabla', 'a') результат id value 1 bl 2 bl 3 bl ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 17:14 |
|
User defined functions
|
|||
---|---|---|---|
#18+
если бы удастся построить по результату парсинга и запустить на выполнение в теле функции такой вот select ith tmp (id, name) as (values (1,'a'),(2,'b'),(3,'c')) select * from tmp то будет получен искомый результат ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 18:00 |
|
User defined functions
|
|||
---|---|---|---|
#18+
"with tmp ..." - очепятка была ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 18:01 |
|
User defined functions
|
|||
---|---|---|---|
#18+
блин я нифига не понимаю можно подробнее? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 18:14 |
|
User defined functions
|
|||
---|---|---|---|
#18+
если иметтся в виду tmp - временная таблица то дакларация такого вида Код: plaintext 1. 2.
да и мне не понять одну вещь, если функция возвращает таблицу то почему нельзя заполнить эту таблицу в самой функции? если можно заполнить то по какому имени к ней обратиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2005, 18:31 |
|
User defined functions
|
|||
---|---|---|---|
#18+
ggv прав. Между прочим если взять любимый наш COOKBOOK то там есть пример как это делается. Мой Вам совет - скачайте COOKBOOK - и не пуха вам ни пера! http://ourworld.compuserve.com/homepages/graeme_birchall/DB2V82CK.PDF ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 09:58 |
|
User defined functions
|
|||
---|---|---|---|
#18+
я бы взял файл udfemsrv.sqc из samples за основу, man strchr или man strtok, в теле функции парсишь и строишь динамический запрос с этим, как его, забыл официальное название, ну короче с предложением WITH, который возвращает - короче, запусти на выполнение with tmp (id, name) as (values (1,'a'),(2,'b'),(3,'c')) select * from tmp; и увидишь вот это функция и должна возвратить. а построить тело запроса и есть твоя задача. gardenman - а где там в cookbook'e похожий пример, не ткнёш носом? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2005, 18:13 |
|
|
start [/forum/topic.php?fid=43&fpage=145&tid=1605856]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 279ms |
total: | 412ms |
0 / 0 |