|
|
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Если не трудно, помогите плиз... Имеются две таблички: Цены1(артикул, тип, цена) Цены2(артикул, тип, цена) Нужно в Цены1 сделать такую же цену, как в Цены2 (связав их по артикулам и типу цены) Пишу: update Цены1 sp set sp.цена=(select цена from Цены2 where sp.артикул=артикул and sp.тип=тип) А он мне отвечает: ORA-01407: Невозможно заменить Цена1 на Null Но в Цены2 нет нулевых значений!! В чем может быть ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:01:14 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Если не ошибаюсь, то можно сделать так: UPDATE (SELECT a.Цена Цена1а, b.Цена Цена2б FROM Цена1 a, Цена2 b WHERE a.артикул = b.артикул and a.тип = b.тип) SET Цена1а = Цена2б ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:23:04 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Может так Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:40:03 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
У тебя в таблице Цены1 есть артикул, который не присутствует в таблице Цены2, поэтому подзапрос возвращает NULL. А пример Andrew Campball, к сожалению, не прокатит, такой синтаскис c update.. from допустим в MSSQL, Sybase, но не в Oracle. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:42:06 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Хотя нет, сорри, перепутал, работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:45:11 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
2 drive Можно и так, но скорость в моем варианте будет лучше. (рекомендации Тома Кайта) Оператор UPDATE и NULL-значения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.06.2003, 16:45:18 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Для drive: Пыталась, не работает Для Denis Popov >У тебя в таблице Цены1 есть артикул, который не присутствует в таблице Цены2, поэтому подзапрос возвращает NULL Там полно таких значений, но он же должен выбирать по условию Цены1.артикул=Цены2.артикул Для Andrew Campball: Сделала, как ты советовал, оракл мне ответил: ORA-01779 cannot modify a column which maps to a non key-preserved table У меня в help нет описания такой ошибки. Не подскажете, как с ней справится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 08:16:32 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
а если так : update Цены1 sp set sp.цена=nvl((select цена from Цены2 where sp.артикул=артикул and sp.тип=тип),sp.цена) сегодня на работе проверю, работает такое или нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 09:00:42 |
|
||
|
Что-то я не так делаю или еще немного про апдейт
|
|||
|---|---|---|---|
|
#18+
Не знаю, у меня все работает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2003, 09:32:23 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32188781&tid=1989869]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
47ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
| others: | 201ms |
| total: | 336ms |

| 0 / 0 |
