Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Добрый день. На вход хранимке передается параметр spin VARCHAR(500). Где spin может содержать разные значение, но вид примерной такой. spin = '61000,61001,61005,610006' И не знаю как запихнуть spin в условие запроса, чтобы выглядело примерно так .... WHERE in_numbp IN (spin), где поле in_numbp имеет тип INTEGER. Выходит сообщение о несовместимости типов in_numbp и spin. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 06:27 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
declare SQL_CMD varchar(1000); set SQL_CMD = "select ... from ... where id in ("||spin||")"; ну а дальше EXECUTE IMMEDIATE или PREPARE .... from SQL_CMD.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 09:29 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Может функцию написать в которой делать проверку данной строки да и в Cookbook был запрос по нормализации подобных строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 10:10 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
TORTdeclare SQL_CMD varchar(1000); set SQL_CMD = "select ... from ... where id in ("||spin||")"; Теперь возникли проблеммы, как вывести это в курсор. Такой синтаксис не отрабатывает DECLARE cursor1 CURSOR WITH RETURN FOR EXECUTE IMMEDIATE SQL_CMD; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 11:40 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
declare c1 cursor for s1; PREPARE s1 from SQL_CMD; open c1; что-то типа этого.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 11:43 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
OlegA67Добрый день. На вход хранимке передается параметр spin VARCHAR(500). Где spin может содержать разные значение, но вид примерной такой. spin = '61000,61001,61005,610006' И не знаю как запихнуть spin в условие запроса, чтобы выглядело примерно так .... WHERE in_numbp IN (spin), где поле in_numbp имеет тип INTEGER. Выходит сообщение о несовместимости типов in_numbp и spin.Добрый день. Напишите табличную функцию-токенайзер (можно на sql, лучше на c), которая будет разбирать эту строку на фрагменты. Потом ее можно будет использовать в запросе типа: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 16:24 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
tokenizer === REXX:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.10.2007, 16:28 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Добрый день Марк. Создал udf proc.tokenizer на sql, то что написали Вы, а дальше не получается ее прикрутить к своему запросу, так как у мне в условие надо сделать WHERE in_numb NOT IN ('61000,61001,61005,610006'). как правильно, переделать запрос, то что Вы писали Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 12:30 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Добрый день. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 12:51 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо, все получилось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2007, 13:21 |
|
||
|
Как преобразовать входной параметр в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Возник еще один вопрос по хранимке. На вход передаются несколько параметров, где два из них VARCHAR(8) (..., IN sved VARCHAR(8), IN kor VARCHAR(8)) И мне эти два парметра надо вставить в запрос в условие WHERE, в зависимости от значения самих параметров. То сеть если sved = '', то условие дожно быть vc_sved IS NULL, В противном случае vc_sved = sved, то же самое и по kor. Пока в голову приходит только использовать конструкцию CASE из 4x веток. С использованием EXECUTE IMMEDIATE , так и не получилось вывести данные в курсор. Буду признателен за советы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2007, 06:40 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34889729&tid=1604252]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 351ms |

| 0 / 0 |
