Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.035 c
1-1092399868
begin...end
2004-08-13 16:24
2004.08.29
TForm.OnShow


14-1092061346
ИМХО
2004-08-09 18:22
2004.08.29
Корейко


8-1086946521
Snip
2004-06-11 13:35
2004.08.29
Проиграть видео с DirectShow


1-1092656987
Diman
2004-08-16 15:49
2004.08.29
RichEdit


14-1091764868
Думкин
2004-08-06 08:01
2004.08.29
Пятничные задачки. 6 августа 2004





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский