|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Добрый день Потребовалось сделать изменение в справочнике контактов, заменить один e-mail на другой. Написал вот такой блок: execute block as declare variable T_CLIENT integer; declare variable T_EMAIL_DATA integer; declare variable T_EMAIL varchar(255); begin for select CLIENT, EMAIL_DATA, replace(EMAIL, 'edi@domen.ru', 'edi@domen.com') from CLIENT_EMAIL_DATA into :T_CLIENT, T_EMAIL_DATA, T_EMAIL do begin update CLIENT_EMAIL_DATA set EMAIL = :T_EMAIL where CLIENT = :T_CLIENT and EMAIL_DATA = :T_EMAIL_DATA ; end end условие CLIENT = :T_CLIENT and EMAIL_DATA = :T_EMAIL_DATA из-за PK, он составной. При выполнении получаю : Arithmetic overflow or division by zero has occurred. arithmetic exception, numeric overflow, or string truncation. string right truncation. Что может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 11:32 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, а что одним UPDATE не судьба? Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 11:37 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Симонов Денис, одним это как? Не понял, что ты мне предлагаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:14 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, я же выше написал. На фига сначала SELECT потом UPDATE? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:16 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Я бы ещё просил - нафига там REPLACE и почему пустой WHERE. Если на первый вопрос ответ будет - "там несколько адресов в строке", то он же будет и ответом на вопрос собственно темы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:23 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
hvlad, несколько адресов в строке, но с другими доменами. Т.е. 'edi@domen.ru' может быть один, может их быть ещё дополнительные. Where нет, т.к. нужно перебрать все строки в таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:32 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, да ну? А вот так Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:33 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Симонов ДенисGallemar, да ну? А вот так Код: sql 1. 2. 3.
И вот так ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:40 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, А как тип у поля Код: plaintext
Код: plaintext
Может просто пытаешься впихнуть невпихуемое? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:47 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
fraks, точно!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:50 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, EMAIL какого типа. Может у тебя размерности не хватает? Или по дурости там CHAR в типе поля, тогда TRIM добавь. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:51 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
select client, char_length (email) from CLIENT_EMAIL_DATA WHERE EMAIL CONTAINING 'edi@domen.ru' - три по 255 символов, строка по 255 символов ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:54 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Gallemar, ну тогда увеличивай размер ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:56 |
|
Проблема с выполнением replace
|
|||
---|---|---|---|
#18+
Симонов ДенисGallemar, EMAIL какого типа. Может у тебя размерности не хватает? Или по дурости там CHAR в типе поля, тогда TRIM добавь. EMAIL T_STR_VALUE /* T_STR_VALUE = VARCHAR(255) */, ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2016, 12:58 |
|
|
start [/forum/topic.php?fid=40&fpage=50&tid=1561781]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 280ms |
total: | 418ms |
0 / 0 |