powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос с равенством по строке. Непонятная ошибка
3 сообщений из 3, страница 1 из 1
Запрос с равенством по строке. Непонятная ошибка
    #39293853
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Люди, помогите разобраться с непонятным поведением запроса.
Есть таблица:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Name             Type         Nullable Default Comments 
---------------- ------------ -------- ------- -------- 
ID               NUMBER(10)                             
DOCUMENTDATA     BLOB         Y                         
SIGNDATA         BLOB         Y                         
FUID             NUMBER(10)                             
UNIQUENUMBER     NUMBER(10)                             
DOCUMENTTYPE     NUMBER(10)   Y                         
STATE            NUMBER(10)   Y                         
FLAG             NUMBER(10)   Y                         
SENDERID         NUMBER(10)   Y                         
BEGINSTATE       NUMBER(10)   Y                         
CREATERUSER      VARCHAR2(15) Y                         
CREATEDATE       DATE                                   
PREVDATA         BLOB         Y                         
BINARYDOCDATAREF NUMBER(10)   Y                         
FORMATTYPE       NUMBER(10)                             
COMPRESSIONFLAGS NUMBER(10)                             
UUID             VARCHAR2(50)                           
UPDATEDATE       DATE            
В данном случае нам интересно поле UUID? в котором содержится значение: 0136f197-89b8-4611-bb99-03d16d5dbcc6
Есть запрос:
Код: plsql
1.
2.
3.
select substr(SDR.UUID,1,36),SDR.UUID, length(SDR.UUID)
from tb_SignDocRecords SDR 
where ( SDR.UUID = '0136f197-89b8-4611-bb99-03d16d5dbcc6')


Ничего не находится. Но стоит вставить для поля любую функцию по работе с текстом, как строка сразу находится:
Код: plsql
1.
2.
3.
4.
5.
6.
select substr(SDR.UUID,1,36),SDR.UUID, length(SDR.UUID)
from tb_SignDocRecords SDR 
where ( TRIM(SDR.UUID) = '0136f197-89b8-4611-bb99-03d16d5dbcc6')

Результат:
0136f197-89b8-4611-bb99-03d16d5dbcc6	0136f197-89b8-4611-bb99-03d16d5dbcc6	36


Причем на месте TRIM может быть и to_char и substr(SDR.UUID,1,36), все равно строка находится.

Код: plsql
1.
2.
3.
4.
5.
6.
select SDR.UUID, dump(SDR.UUID)
from tb_SignDocRecords SDR 
where  trim(SDR.UUID) = '0136f197-89b8-4611-bb99-03d16d5dbcc6'

Результат:
0136f197-89b8-4611-bb99-03d16d5dbcc6	Typ=1 Len=36: 48,49,51,54,102,49,57,55,45,56,57,98,56,45,52,54,49,49,45,98,98,57,57,45,48,51,100,49,54,100,53,100,98,99,99,54



Никак не могу сообразить, в чем причина такого поведения
...
Рейтинг: 0 / 0
Запрос с равенством по строке. Непонятная ошибка
    #39293864
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей из СамарыНичего не находится. Но стоит вставить для поля любую функцию по работе с текстом, как строка сразу находится:Индекс по этому столбцу есть? - recreate или rebuild online.
...
Рейтинг: 0 / 0
Запрос с равенством по строке. Непонятная ошибка
    #39293876
Сергей из Самары
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

ДА!!! Спасибо. Ребуилд помог. После него все заработало.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Запрос с равенством по строке. Непонятная ошибка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]