|
Динамический SQL
|
|||
---|---|---|---|
#18+
Кто - нибудь знает как провернуть подобное: Нужно сделать SQL процедуру, которая будет динамически составлять SQL Statement, в зависимости от параметров процедуры, т.е. в процедуре имеются параметры, в зависимости от того какой параметр/параметры введены составляется SQL запрос.? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 14:33 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
ну я знаю. толко не понятно, что тебя смущает. поясни детальнее, а то не понятно, об чем отвечать. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 14:38 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Нужно что - то вроде этого CREATE PROCEDURE Test(IN Parameter1 INTEGER, IN Parameter2 INTEGER) .... P1:BEGIN DECLARE WhereClause VARCHAR(200); DECLARE MyCursor CURSOR WITH RETURN FOR /*код который выбирает какую из оставшихся частей селекта выбрать*/ --что то вроде if(Parameter1=12) THEN WhereClase="WHERE MyField="MyValue""; else WhereClause="WHERE ...." SELECT * FROM MyTable + WhereClause; END P1 Пример грубый, но примерно это мне нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 14:59 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
ну проблемы то ты не описал.... все ж здесь рабочее в принципе. просто пример что ли нужно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 15:18 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Давай пример, а то этот не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 15:44 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
куда слать? как создавать таблички не дам !!! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 15:51 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Какие таблицы? Мне только пример нужен. Вот моё мыло: riman_lv@front.ru А почему в форум отослать не хочешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 16:06 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
лови. тока она под OS/390 :) но ничего, лишние детали убрать-сгодится :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 16:21 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Вот млин. Всё отлично, только есть одна какашка: Допустим я пишу stmt='where type='ИМ'' как сохранить кавычки перед и после ИМ? Т.е. какие - там в SQL'е эскейп последовательности? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 17:18 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
stmt='where type=''ИМ''' ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 17:29 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Нееет. Не хочет работать. Выдает:SQL0206N "ИМ" is not valid in the context where it is used. SQLSTATE=42703 Какие эскейп последовательности в SQL'e есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 17:46 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
stmt=<одинарная кавычка>where type=<одинарная кавычка>ИМ<одинарная кавычка><одинарная кавычка><одинарная кавычка> <одинарная кавычка>, т.е ' превращается в <одинарная кавычка><одинарная кавычка>, т.е '' внутри строки. как так у меня работает а у тебя нет... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 17:50 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
-------------------------------- Script -------------------------------- select '''''''''''''''''''' from sysibm.sysdummy1; ------------------------------------------------------------------------ 1 --------- ''''''''' 1 record(s) selected. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.07.2003, 17:54 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
Тьфу ты, млин получилось наконец - то. Только в примере выше ошибочка маленькая, должно быть так: <Одинарная кавычка>where type=<Одинарная кавычка><Одинарная кавычка>ИМ<Одинарная кавычка><Одинарная кавычка><Одинарная кавычка> Сэнкс э лот. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2003, 08:38 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
это не ошибка, а очепятка! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.07.2003, 11:04 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
2riman Запости, пожалуйста, сюда, что у тебя получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2005, 10:53 |
|
Динамический SQL
|
|||
---|---|---|---|
#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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2005, 11:24 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
WHERE TK.KntType=''ЭК''' AND (TK.NomKont=TempCom2 OR TempCom2 Is Null) или WHERE TK.KntType=''ЭК''' AND TK.NomKont=COALESCE(TempCom2,TK.NomKont) без всякой динамики. Статика кстати быстрее работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2005, 14:09 |
|
Динамический SQL
|
|||
---|---|---|---|
#18+
golsaWHERE TK.KntType=''ЭК''' AND (TK.NomKont=TempCom2 OR TempCom2 Is Null) или WHERE TK.KntType=''ЭК''' AND TK.NomKont=COALESCE(TempCom2,TK.NomKont) без всякой динамики. Статика кстати быстрее работает. Спасибо, но тот пример только для ознакомления - всё равно был переделан под Яву. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.04.2005, 14:48 |
|
|
start [/forum/topic.php?fid=43&tid=1605951]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 476ms |
0 / 0 |