powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select Replace
25 сообщений из 78, страница 3 из 4
Select Replace
    #39613693
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGate,

неужели? А по моему кто-то просто не хочет учить СУБД на которую собирается мигрировать.
...
Рейтинг: 0 / 0
Select Replace
    #39613694
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну почему косяк?
Вот так работает же:
Код: sql
1.
2.
3.
4.
5.
6.
for select replace(:teststring, t.ЧтоЗаменить, t.Замена)
      from t
  into :teststring
  do
  begin
  end


Что не устраивает? Лишние "do-begin-end"?
...
Рейтинг: 0 / 0
Select Replace
    #39613696
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,
ща посмотрю
...
Рейтинг: 0 / 0
Select Replace
    #39613699
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGateDimitry Sibiryakov, Вас понял.
Значит переход на FB отменяется.
Уж не знаю, что тебе надо. Оформи в виде процедуры, вот и будет тебе "в одну строчку".
А в FB 3.* вообще функции появились, куда уж проще. Сделай один раз да пользуйся везде.
...
Рейтинг: 0 / 0
Select Replace
    #39613701
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGate,

В транзакте всё также. Надо declare писать. Просто select без declare не пройдёт. Надо оборачивать в хранимку. В FB для тех кто не любит хранимки есть Execute block.
...
Рейтинг: 0 / 0
Select Replace
    #39613702
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RedGate,
IBExpert 2018
Код: sql
1.
2.
3.
4.
5.
6.
for select replace(:teststring, t.ЧтоЗаменить, t.Замена)
      from t
  into :teststring
  do
  begin
  end


SQL error code = -104.
Token unknown - line 10, column 5.
do.
...
Рейтинг: 0 / 0
Select Replace
    #39613704
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в Execute block делал
...
Рейтинг: 0 / 0
Select Replace
    #39613705
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGate,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
recreate table t (a varchar(30), b varchar(30));

insert into t(a,  b) values('Заменить1', 'Заменили1');
insert into t(a,  b) values('Заменить2', 'Заменили2');
insert into t(a,  b) values('Заменить3', 'Заменили3');

commit;

set term ^;

create function replace_by_table(StrParam varchar(4000)) returns varchar(4000)
as
begin
  for select a, b
      from t
      as cursor c
  do
  begin
    StrParam = replace(StrParam, c.a, c.b);
  end
  return StrParam;
end^

set term ;^



вызываем так

Код: sql
1.
2.
select replace_by_table('Заменить1 , Заменить2 , Заменить3') as StrParam
from rdb$database



ты не поверишь, работает!!!
...
Рейтинг: 0 / 0
Select Replace
    #39613707
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис,
да эта конструкция работает. Огромное спасибо, буду думать дальше
...
Рейтинг: 0 / 0
Select Replace
    #39613722
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KreatorXXI,
Код: sql
1.
2.
3.
4.
5.
6.
for select replace(:teststring, t.ЧтоЗаменить, t.Замена)
      from t
  into :teststring
  do
  begin
  end


Твоя конструкция тоже работает!
Ура, может еще поборемся за FB
...
Рейтинг: 0 / 0
Select Replace
    #39613724
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, не смею более тратить ваше время.
...
Рейтинг: 0 / 0
Select Replace
    #39613725
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGateможет еще поборемся за FB

Нет уж, нет уж, померла так померла. Возвращайся на MS SQL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Select Replace
    #39613726
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGate Ура, может еще поборемся за FB

А может не надо, а? Тебе же всю доку придётся вслух читать и руками твоими водить. И не только за FB.
...
Рейтинг: 0 / 0
Select Replace
    #39613730
RedGate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну нет уж FB для народа, а не для избранных!
...
Рейтинг: 0 / 0
Select Replace
    #39613736
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGateУра, может еще поборемся за FB
Поверь, главная засада тебя ждёт вовсе не в разнице синтаксисов. "Бороться" за что-то можно, когда знаешь предмет.
...
Рейтинг: 0 / 0
Select Replace
    #39613827
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGateKreatorXXI,
Код: sql
1.
2.
3.
4.
5.
6.
for select replace(:teststring, t.ЧтоЗаменить, t.Замена)
      from t
  into :teststring
  do
  begin
  end


Твоя конструкция тоже работает!
Ура, может еще поборемся за FB
Мне тоже сначала после транзакт было не очень. Но ничего, втянулся. Теперь правильные советы иногда даю.
...
Рейтинг: 0 / 0
Select Replace
    #39613885
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RedGate,

Код: sql
1.
select list( replace('StringForReplace', FieldWhere, ',') from TableWhere
...
Рейтинг: 0 / 0
Select Replace
    #39613959
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pastorRedGate,

Код: sql
1.
select list( replace('StringForReplace', FieldWhere, ',') from TableWhere


Совсем не туда. list-то зачем?
...
Рейтинг: 0 / 0
Select Replace
    #39614000
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чо, for select без пустого begin-end после do не работает штоле?
Просто интересно.
...
Рейтинг: 0 / 0
Select Replace
    #39614005
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIpastorRedGate,

Код: sql
1.
select list( replace('StringForReplace', FieldWhere, ',') from TableWhere


Совсем не туда. list-то зачем?


Потому что я удосужился прочитать вопрос?

RedGateo_v_a,
не знаю как в форуме таблицу вставить, пусть будет xml таблица
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<table>
    <caption>t</caption>
    <thead>
        <tr><td>ЧтоЗаменить</td><td>Замена</td></tr>
    </thead>
    <tbody>
        <tr><td>Заменить1</td><td>Заменили1</td></tr>
        <tr><td>Заменить2</td><td>Заменили2</td></tr>
        <tr><td>Заменить3</td><td>Заменили3</td></tr>
    </tbody>
</table>


Входящая строка StrParam='Заменить1 , Заменить2 , Заменить3' используя таблицу t надо получить
StrParam= 'Заменили1 , Заменили2 , Заменили3'
...
Рейтинг: 0 / 0
Select Replace
    #39614009
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXIpastorRedGate,

Код: sql
1.
select list( replace('StringForReplace', FieldWhere, ',') from TableWhere


Совсем не туда. list-то зачем?

Хотя...
У него там входящий параметр многострочный.

А по факту - хочет агрегат - получит агрегат.
...
Рейтинг: 0 / 0
Select Replace
    #39614031
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryА чо, for select без пустого begin-end после do не работает штоле?
Просто интересно.
У меня - нет. ";" тоже не заменяет пустой beginend, что немного странновато, как по мне.
...
Рейтинг: 0 / 0
Select Replace
    #39614110
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По "Руководству по языку..." после do должен быть обязательный "<compound_statement>". Вот если бы ещё и do убрать, TC понравилось бы.
...
Рейтинг: 0 / 0
Select Replace
    #39614114
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
13.03.2018 14:00, KreatorXXI пишет:
> По "Руководству по языку..." после do должен быть обязательный "<compound_statement>". Вот если бы ещё и do убрать, TC понравилось бы.

тогда и FOR убрать
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Select Replace
    #39614115
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий, предлагаю CTE, чтобы ТС окончательно сломал себе моск.
...
Рейтинг: 0 / 0
25 сообщений из 78, страница 3 из 4
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Select Replace
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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