Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: CL | DM;

Вниз

SQL, like & %    Найти похожие ветки 

 
DeepGray   (2004-08-04 13:26) [0]

Нужен совет. Задача такова:
Есть SQL-скрипт

SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE ":kod"
AND TO_CHAR (OBLIK_NUMB) LIKE ":num"
AND ((UPPER (LONG_NAME) LIKE UPPER (":lname")) OR (UPPER SHORT_NAME) LIKE UPPER (":sname")))
AND UPPER (TYPE_P) LIKE UPPER (":tip")
AND UPPER (MARKA) LIKE UPPER (":marka")
AND UPPER (SORT_P) LIKE UPPER (":sort")
AND UPPER (RAZMER) LIKE UPPER (":razmer")
AND UPPER (KRESLENNYA) LIKE UPPER (":chert")
AND UPPER (TU) LIKE UPPER (":tu")
AND UPPER (GOST) LIKE UPPER (":gost")

ORDER BY KLASS_CODE

если необходимо, то я присваиваю соответствующему параметру значение, если по этому параметру отбирать данные не надо, то параметру присваиваю "%".
Запрос отрабатывается не правильно (IsEmpty=true, хоть я знаю что это не так).
Начинаю искать ошибку и получаю интерестный результат. После удаления выделенных строк всё работает. Добавляю по одной строке, каждый раз удаляя прошлую - со всеми (по одной) работает.
Например,

SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE ":kod"
AND TO_CHAR (OBLIK_NUMB) LIKE ":num"
AND ((UPPER (LONG_NAME) LIKE UPPER (":lname")) OR (UPPER SHORT_NAME) LIKE UPPER (":sname")))
AND UPPER (TYPE_P) LIKE UPPER (":tip")

или

SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE ":kod"
AND TO_CHAR (OBLIK_NUMB) LIKE ":num"
AND ((UPPER (LONG_NAME) LIKE UPPER (":lname")) OR (UPPER SHORT_NAME) LIKE UPPER (":sname")))
AND UPPER (TU) LIKE UPPER (":tu")

и т.д.
Опять добавляю все строки вместе - не работает. Подскажите пожалуйста, где я допускаю ошибку.


 
DeepGray   (2004-08-04 13:28) [1]

Да, я галочку напротив СУБД поставил, но что-то не сработало.
Вообщем у меня Оракл.


 
DeepGray   (2004-08-04 13:36) [2]

Млин. Вот что значит не использовать Кнтрл-Ц и Кнтрл-В.
Фрагменты кода содержат ошибку.
Вот те коды, к-рые у меня в исходнике:

Код1.
SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE :kod
AND TO_CHAR (OBLIK_NUMB) LIKE :num
AND ((UPPER (LONG_NAME) LIKE UPPER (:lname)) OR (UPPER SHORT_NAME) LIKE UPPER (:sname)))
AND UPPER (TYPE_P) LIKE UPPER (:tip)
AND UPPER (MARKA) LIKE UPPER (:marka)
AND UPPER (SORT_P) LIKE UPPER (:sort)
AND UPPER (RAZMER) LIKE UPER (:razmer)
AND UPPER (KRESLENNYA) LIKE UPPER (:chert)
AND UPPER (TU) LIKE UPPER (:tu)
AND UPPER (GOST) LIKE UPPER (:gost)

ORDER BY KLASS_CODE


Код2.
SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE ":kod"
AND TO_CHAR (OBLIK_NUMB) LIKE ":num"
AND ((UPPER (LONG_NAME) LIKE UPPER (":lname")) OR (UPPER SHORT_NAME) LIKE UPPER (":sname")))
AND UPPER (TYPE_P) LIKE UPPER (":tip")


Код3.
SELECT * FROM DOVIDNYK A, VYMIR B WHERE A.CODE_V=B.CODE_VYMIRU
AND KLASS_CODE LIKE ":kod"
AND TO_CHAR (OBLIK_NUMB) LIKE ":num"
AND ((UPPER (LONG_NAME) LIKE UPPER (":lname")) OR (UPPER SHORT_NAME) LIKE UPPER (":sname")))
AND UPPER (TU) LIKE UPPER (":tu")


 
roottim ©   (2004-08-04 13:49) [3]

сделай свой запрос в sqlplus(но удобнее в plsqldev) вместо параметров явные значения. А затем предоставь результат.
>хоть я знаю что это не так
на каком основании ты это знаешш.. вроде-бы или как-бы



Страницы: 1 вся ветка

Текущий архив: 2004.08.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
1-1092376595
race1
2004-08-13 09:56
2004.08.29
иконка в компоненте


1-1092397171
Mitrofan
2004-08-13 15:39
2004.08.29
Отдельную форму в dfm формате открыть в прложении


14-1091960547
Тимур
2004-08-08 14:22
2004.08.29
Чистка реестра


14-1091964279
Piter
2004-08-08 15:24
2004.08.29
Интересно :)


8-1086699491
Ruslan
2004-06-08 16:58
2004.08.29
Формат IMA ADPCM wav файла