LINUX.ORG.RU
решено ФорумAdmin

Помогите с update и substr.

 ,


0

1

Никак не могу понять как всё сотворить.

select substr(pid,5,3) from table1 where pid='aaa221';
выводит 221. Тыкаем дальше.
update table1 set substr(pid,5,3) = 999 where pid='aaa221';
toad выводит ошибку ORA-00927: missing equal sign
где туплю ?

★★★★★

может, просто уволиться?

http://www.techonthenet.com/oracle/functions/substr.php

то есть, если даже предположить, что substr в этом месте сработает, update table1 set 221 = 999 where pid='aaa221'; - это то, что тебе нужно?!

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)
Ответ на: комментарий от dada

1) substr( string, start_position, [ length ] )
начиная с пятого символа в «aaa221» точно не 221

2) пробуй так:
update table1 set pid = substr(pid,0,3) + «999» where pid='aaa221';
или как там у вас в оракле строки складывать?

aol ★★★★★
()

Вот скажи, тебе в C++/Java/C#/Basic не приходило в голову писать func(a) = b? А если приходило, куда тебя посылал компилятор?

no-dashi ★★★★★
()

где туплю ?

В ПТУ своём ты тупил.

update table1 set pid=substr(pid,1,3)||'999' where pid='aaa221'

Заменит aaa221 на aaa999

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

update table1 set pid=substr(pid,1,3)||'999' where pid='aaa221'

спасибо.

dada ★★★★★
() автор топика
29 июня 2013 г.
Ответ на: комментарий от no-dashi

update table1 set pid=substr(pid,1,3)||'999' where pid='aaa221'
Заменит aaa221 на aaa999

А как можно сделать тоже самое, если aaa221 находится в разных позициях ?
То есть в одной строке он с 1-го по 3-ий, в другой с 15-го по 18-ый. То есть его позиция в строке неизвестна.

dada ★★★★★
() автор топика

суровые уборщицы делают работу согласно регламента эксплуатации

etwrq ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.