powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Position с Blob в FB3 непонятно себя ведет
22 сообщений из 22, страница 1 из 1
Position с Blob в FB3 непонятно себя ведет
    #39579243
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С НГ всех,
Столкнулся с тем, что Position не находит подстроку FB3. Ниже код, в котором первый suspend возвращает 0, второй 1.
По-идее и первый должен был вернуть единицу.
Подскажите причину такого поведения?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create or alter procedure A_TEST
returns (
    RES integer)
as
declare variable BL blob sub_type 1 segment size 80 collate UNICODE_CI;
declare variable TXT varchar(255) collate UNICODE_CI;
begin
  bl= 'declare variable ID D_ID;declare variable TEST_FIELD D_INTEGER;';
  txt = 'declare variable id d_id;';
  res = position(txt, bl);
  suspend;
  res = position ('declare variable id d_id;','declare variable ID D_ID;declare variable TEST_FIELD D_INTEGER;');
  suspend;
end
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579322
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

навскидку: вставил буковку не с той раскладки, например, с или а
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579324
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

2. функция l регистрочувствительна. Попробуй так:
Код: sql
1.
res = position(UPPER(txt), UPPER(bl));
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579330
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Док,

ну так он же коллейт указал не чувствительный к регистру
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579417
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисну так он же коллейт указал не чувствительный к регистру
не знал ...
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579428
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,

Да, collate указал, а тут такая засада...
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579429
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ДокAtanas,

навскидку: вставил буковку не с той раскладки, например, с или а

Да нет, сверху вниз копипастил, второй position не дал бы единицу.
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579430
VDSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

Ты упростил бы пример, сделал бы что-то вроде select pos(cast('' as blob collate), cast('' as blob collate)) from $rdb$database, тогда бы и в тренер было бы легче, если что. А то, так, чувствую, здесь всем лень такое компилировать. ))
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579440
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VDSoft,

зачем компилировать EXECUTE BLOCK же есть
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579443
VDSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Отвечаю, - потому что так и проще и нагляднее и выделяет, имхо, только собственно проблему.
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579446
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VDSoft,

ошибаешься. CAST AS и локальная переменная с заданным коллейтом вовсе не обязательно эквивалентны.
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579451
VDSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Я не хочу гадать, хочу чтобы автор сам в таком вот упрошенном варианте проверил и ответил. Не исключено, что это попутно наведет его на еще какие-нибудь мысли.
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579554
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VDSoft, если лень компилять, вот:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
execute block
returns (
    RES integer)
as
declare variable BL blob sub_type 1 segment size 80 collate UNICODE_CI;
declare variable TXT varchar(255) collate UNICODE_CI;
begin
  bl= 'declare variable ID D_ID;declare variable TEST_FIELD D_INTEGER;';
  txt = 'declare variable id d_id;';
  res = position(txt, bl);
  suspend;
  res = position ('declare variable id d_id;','declare variable ID D_ID;declare variable TEST_FIELD D_INTEGER;');
  suspend;
end



То, что написал и так значительно упрощенный вариант. Из оригинала только значения переменных взял.
Upper или Cast можно воспользоваться, и вполне успешно. Но это не решение, это костыль.
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579566
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

какой чарсет и коллейт у БД ? У коннекта ?
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579577
VDSoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

Мне не только, действительно, лень, но даже компьютера сейчас нет. Но мы не услышали ответа на вопрос, - с простым одиночным селектор, с cast(), чтоб материализовать блоб на лету с нужным коллейтом, но без upper(), естественно, оно работает или нет?
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579714
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladAtanas,

какой чарсет и коллейт у БД ? У коннекта ?

У БД: DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI;
Коннект: UTF8
fb: 3.0.2.32703
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39579764
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже на баг, создашь тикет в трекере ?
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39580001
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Да, попробую
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39580006
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил сюда
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39581295
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atanas,

Исправил, завтра можно проверить снапшот
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39581512
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Спасибо большое!
...
Рейтинг: 0 / 0
Position с Blob в FB3 непонятно себя ведет
    #39597051
Atanas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Atanashvlad,
Спасибо большое!

Обновились до 3.0.3, работает! :D
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Position с Blob в FB3 непонятно себя ведет
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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