Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Проблема с кавычками Хочу сделать запрос типа: select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a='ЭК' and g54d between prev and cur group by char(g33a,4)) Делаю следующие действия set vr_EX='ЭК'; set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a=' || vr_EX || ' and g54d between prev and cur group by char(g33a,4))'; execute immediate SQL_CMD; Что можно сделать что бы передать переменную вместе с кавычками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 09:34 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
set vr_EX='ЭК'; set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a=''' || vr_EX || ''' and g54d between prev and cur group by char(g33a,4))'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 10:54 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Mark Barinsteinset vr_EX='ЭК'; set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a=''' || vr_EX || ''' and g54d between prev and cur group by char(g33a,4))'; Спасибо за помощь работает нормально, но уменя еще одна мальенкая проблема не касающийся темы Eсть уменя процедура create procedure temp_cur(in prev date, cur date) ........ ------- set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a='ЭК' and g54d between ' || varchar(date( prev )) || ' and ' || varchar(date( cur )) || ' group by char(g33a,4))'; execute immediate SQL_CMD; ------- ........ когда вызываю процедуру и в качестве in параметров передаю дату возникает проблема. Т.Е: db2 => call temp_cur( '2006-01-01' , '2006-12-31' ) SQL0104N Обнаружен неправильный элемент ".2006" после текста "d g54d between 01.01". Список правильных элементов: "<space>". SQLSTATE=42601 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:21 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Don VinNiset SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a='ЭК' and g54d between ' || varchar(date(prev)) || ' and ' || varchar(date(cur)) || ' group by char(g33a,4))'; set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a='ЭК' and g54d between ''' || char(prev, iso) || ''' and ''' || char(cur, iso) || ''' group by char(g33a,4))'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:37 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Упс, недосмотрел... set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a=''ЭК'' and g54d between ''' || char(prev, iso) || ''' and ''' || char(cur, iso) || ''' group by char(g33a,4))'; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2007, 13:38 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinУпс, недосмотрел... set SQL_CMD='select count(distinct char(g33a,4)) from table1 where char(g33a,4)=any(select char(g33a,4) from table1 where g01a=''ЭК'' and g54d between ''' || char(prev, iso) || ''' and ''' || char(cur, iso) || ''' group by char(g33a,4))'; Решаю одну проблему возникает вторая :) Сделал все так как сказали, проблем нет. Но Я также использую оператор execute immediate для SQL_CMD Ругается на то что нельзя использавать select statemant В доке прочел что нельзя использовать select statemant когда используешь execute или execute immediate . Че можете посоветовать для того чтобы в теле процедуры после выполнение, динамически подготовленного , запроса присвоить результат в переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 07:41 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 11:16 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. :) :) :) Извеняюсь за наглость но у меня еще полследний вопрос на этот же тему. Как мене сделать следующий запрос. insert into temp_cur( g33a, s15_17, g41, g31b, g46, g54d)(select g33a, s15_17, g41, g31b, g46, g54d from t_st2006 where char(g33a, 4)=vr_g33a and g54d between '2006-01-01' and '2006-12-31' and g01a='ЭК'); В теле процедуры пишу так: set vr_year_var='t_st'||substr(varchar(cur),7,4); set SQL_CMD_exec=' insert into temp_cur( g33a, s15_17, g41, g31b, g46, g54d)(select g33a, s15_17, g41, g31b, g46, g54d from ' || vr_year_var || ' where char(g33a, 4)=vr_g33a g01a='''|| vr_EX || ''' and g54d between ''' || char(prev, iso) || ''' and ''' || char(cur, iso) || '''' ; execute immediate SQL_CMD_exec; компелируется процедура без проблем. Но когда вызываешь ее, она ругается:( SQL0084N Оператор EXECUTE IMMEDIATE содержит оператор SELECT или VALUES. SQLSTATE=42612 Как или что использовать чтобы получить требуемый результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 15:16 |
|
||
|
Проблеме с кавычками
|
|||
|---|---|---|---|
|
#18+
set vr_year_var='t_st'||substr(varchar(cur),7,4); set vr_g33a = ...; set SQL_CMD_exec= 'insert into temp_cur( g33a, s15_17, g41, g31b, g46, g54d) ' ||'select g33a, s15_17, g41, g31b, g46, g54d from ' || vr_year_var || ' where char(g33a, 4)= '''||vr_g33a||''' and g01a='''|| vr_EX || ''' and g54d between ''' || char(prev, iso) || ''' and ''' || char(cur, iso) || '''' ; execute immediate SQL_CMD_exec; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2007, 15:45 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34316215&tid=1604813]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 491ms |

| 0 / 0 |
