Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / update / 16 сообщений из 16, страница 1 из 1
28.02.2019, 11:56
    #39780272
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Здравствуйте, подскажите как сделать update
сейчас код такой, не он не подходит в строке два он заменит "15699997" на "8500004" а нужно, чтобы было "15699997,8500004"
Код: plsql
1.
2.
update brsactioncode b 
set b.contractkind = 8500004
...
Рейтинг: 0 / 0
28.02.2019, 12:03
    #39780278
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
RTFM Concatenation operator
Но лучше вернуться к изучению основ. Или нанять архитектора.
...
Рейтинг: 0 / 0
28.02.2019, 12:09
    #39780280
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Elic,

основы это и есть update
...
Рейтинг: 0 / 0
28.02.2019, 12:31
    #39780292
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
elimpionElic,

основы это и есть updateпод основами подразумевалось теория баз данных. Нормальные формы и всё такое... Рано вам ещё апдейты писать.
...
Рейтинг: 0 / 0
28.02.2019, 13:13
    #39780330
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
elimpion,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select contractkind,rowid from brsactioncode;

CONTRACTKIND         ROWID
-------------------- ------------------
                     AADO2DAAIAAEYY0AAA
15699997             AADO2DAAIAAEYY0AAB

SQL> update brsactioncode set CONTRACTKIND=CONTRACTKIND||','||'8500004' where rowid='AADO2DAAIAAEYY0AAB';

1 row updated.

SQL> select contractkind,rowid from brsactioncode;

CONTRACTKIND         ROWID
-------------------- ------------------
                     AADO2DAAIAAEYY0AAA
15699997,8500004     AADO2DAAIAAEYY0AAB



....
stax
...
Рейтинг: 0 / 0
28.02.2019, 13:21
    #39780340
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Stax,
если уж помогаешь этому лодырю, то читай внимательнее, что надо сделать.
...
Рейтинг: 0 / 0
28.02.2019, 13:24
    #39780346
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
123йй,

упс. rowid не заметил. сорри.
...
Рейтинг: 0 / 0
28.02.2019, 13:32
    #39780360
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
123йй123йй,

упс. rowid не заметил. сорри.

мож elimpion-у и без where надо, не знаю

в строке 1 могут быть как null так и пробельчики, допилит

.....
stax
...
Рейтинг: 0 / 0
28.02.2019, 13:53
    #39780377
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
123ййпомогаешь этому лодырюОно, конечно, не в коня рыба. Правильнее было бы удочку приложить ... поперек задней части.
Но и Staxу приписывать чисто альтруизм нет оснований. Может ему нравится ритм клавиш при наборе s,e,l,e,c,t и он пользуется любой возможностью совместить приятное с ненужным.
...
Рейтинг: 0 / 0
28.02.2019, 17:18
    #39780529
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Код: plsql
1.
update brsactioncode b set CONTRACTKIND= decode(CONTRACTKIND, null, 8500004, CONTRACTKIND||','||8500004) 


вот вариант, подойдет для пустой и не пустой строки
только ошибка возникает invalid number, подскажите как исправить
...
Рейтинг: 0 / 0
28.02.2019, 17:21
    #39780535
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
elimpionподскажите как исправитьRTFM decode, тип результата
...
Рейтинг: 0 / 0
28.02.2019, 17:26
    #39780540
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
elimpionвот вариант

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
  1* update brsactioncode b set CONTRACTKIND= decode(CONTRACTKIND, null, '8500004', CONTRACTKIND||',8500004')
SQL> /

2 rows updated.

SQL> select CONTRACTKIND,rowid from brsactioncode;

CONTRACTKIND         ROWID
-------------------- ------------------
8500004              AADO3hAAIAAEYYzAAA
15699997,8500004     AADO3hAAIAAEYYzAAB



зи
какой тип поля CONTRACTKIND?

.....
stax
...
Рейтинг: 0 / 0
28.02.2019, 17:32
    #39780548
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> update brsactioncode b set CONTRACTKIND= decode(CONTRACTKIND, null, 8500004, CONTRACTKIND||','||8500004) ;

2 rows updated.

SQL> select CONTRACTKIND,rowid from brsactioncode;

CONTRACTKIND         ROWID
-------------------- ------------------
8500004              AADO3hAAIAAEYYzAAA
15699997,8500004     AADO3hAAIAAEYYzAAB



.....
stax
...
Рейтинг: 0 / 0
28.02.2019, 18:14
    #39780570
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Stax,

VARCHAR2(4000)
оба ваши варианта не подошли, ошибка
странно то что в отдельности он работает и ошибок не возникает
Код: plsql
1.
2.
update brsactioncode b set 
b.CONTRACTKIND=  b.CONTRACTKIND||',8500004'
...
Рейтинг: 0 / 0
28.02.2019, 18:35
    #39780578
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
elimpionStax,

VARCHAR2(4000)
оба ваши варианта не подошли, ошибка
странно то что в отдельности он работает и ошибок не возникает
Код: plsql
1.
2.
update brsactioncode b set 
b.CONTRACTKIND=  b.CONTRACTKIND||',8500004'


какая ошибка?


как написал Елик, решение
Код: plsql
1.
update brsactioncode b set CONTRACTKIND= decode(CONTRACTKIND, null, 8500004, CONTRACTKIND||','||8500004) 

грубо говоря неверное , из-за типа (number) возвращаемого значения decode
очень ограніченном случае может и отработать 21822027 )

зы
решений много, напр nvl2

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> update brsactioncode set CONTRACTKIND=nvl2(CONTRACTKIND,CONTRACTKIND||',8500004','8500004');

2 rows updated.

SQL> select CONTRACTKIND,rowid from brsactioncode;

CONTRACTKIND         ROWID
-------------------- ------------------
8500004              AADO3hAAIAAEYYzAAA
15699997,8500004     AADO3hAAIAAEYYzAAB



....
stax
...
Рейтинг: 0 / 0
28.02.2019, 19:06
    #39780588
elimpion
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
update
Stax,

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


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