ORACLE - czy da sie poprawic konkretny znak w polu typu varchar?
roman - 21-02-2007 00:05
ORACLE - czy da sie poprawic konkretny znak w polu typu varchar?
W Informixie dziala takie cos: update tablica set pole[4]='A', w ORACLU nie da sie tak. Na odczytanie znalazlem sposob: select substr(pole,4,1) from tablica, ale poprawic juz nie umiem.
Trolu - 21-02-2007 00:05
Użytkownik "roman" <jakejot@gmail.com> napisał w wiadomości news:1171970553.488377.290340@j27g2000cwj.googlegr oups.com... >W Informixie dziala takie cos: update tablica set pole[4]='A', w > ORACLU nie da sie tak. > Na odczytanie znalazlem sposob: select substr(pole,4,1) from tablica, > ale poprawic juz nie umiem. > Zawsze można:
update tabela set kolumna=substr(kolumna,1,3)||'<nowa_wartość_4-ego_znaku>'||substr(kolumna,5,<dlugosc_pola-4>);
Długość w drugim substr() może mieć nawet wartość równą jak długość kolumny, albo i większą - w niczym nie przeszkadza, byle nie mniej niż napisałem, bo wtedy potencjalnie możesz uciąć kawałek zawartości kolumny dla któregoś wiersza...
Pozdrawiam, Trolu
FC Wojtul - 22-02-2007 00:01
On 20 Lut, 14:26, "Trolu" <n...@spam.pl> wrote: > Użytkownik "roman" <jake...@gmail.com> napisał w wiadomościnews:1171970553.488377.290340@j27g2000cw j.googlegroups.com...>W Informixie dziala takie cos: update tablica set pole[4]='A', w > > ORACLU nie da sie tak. > > Na odczytanie znalazlem sposob: select substr(pole,4,1) from tablica, > > ale poprawic juz nie umiem. > > Zawsze można: > > update tabela set > kolumna=substr(kolumna,1,3)||'<nowa_wartość_4-ego_znaku>'||substr(kolumna,5,<dlugosc_pola-4>); > > Długość w drugim substr() może mieć nawet wartość równąjak długość kolumny, > albo i większą - w niczym nie przeszkadza, byle nie mniej niż napisałem, bo > wtedy potencjalnie możesz uciąć kawałek zawartości kolumny dla któregoś > wiersza... > > Pozdrawiam, > Trolu
to juz napisz dokladnie: update tabela set kolumna=substr(kolumna,1,3)||'<nowa_wartość_4-ego_znaku>'|| substr(kolumna,5);
bo przeciez w substr(string, poczatek, koniec) jesli koniec is null to daje do konca ciagu
Trolu - 24-02-2007 00:01
Użytkownik "FC Wojtul" <trzciala@gmail.com> napisał w wiadomości news:1172070722.451297.80840@a75g2000cwd.googlegro ups.com... On 20 Lut, 14:26, "Trolu" <n...@spam.pl> wrote: > Użytkownik "roman" <jake...@gmail.com> napisał w > wiadomościnews:1171970553.488377.290340@j27g2000cw j.googlegroups.com...>W > Informixie dziala takie cos: update tablica set pole[4]='A', w > > ORACLU nie da sie tak. > > Na odczytanie znalazlem sposob: select substr(pole,4,1) from tablica, > > ale poprawic juz nie umiem. > > Zawsze można: > > update tabela set > kolumna=substr(kolumna,1,3)||'<nowa_wartość_4-ego_znaku>'||substr(kolumna,5,<dlugosc_pola-4>); > > Długość w drugim substr() może mieć nawet wartość równą jak długość > kolumny, > albo i większą - w niczym nie przeszkadza, byle nie mniej niż napisałem, > bo > wtedy potencjalnie możesz uciąć kawałek zawartości kolumny dla któregoś > wiersza... > > Pozdrawiam, > Trolu
to juz napisz dokladnie: update tabela set kolumna=substr(kolumna,1,3)||'<nowa_wartość_4-ego_znaku>'|| substr(kolumna,5);
bo przeciez w substr(string, poczatek, koniec) jesli koniec is null to daje do konca ciagu
Oczywiście masz rację, tylko małe sprostowanie - coby ktoś "nowy" sobie źle nie zakodował w pamięci - nie "koniec is null" jak piszesz, a "długość is null" :)
Pozdrawiam, Trolu
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
Oracle 19g +Insert +Insert +Insert...
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?=
=?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?=
[oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?=
[oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?=
MSSQL Express czy Oracle Express
=?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?=
=?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
zanotowane.pldoc.pisz.plpdf.pisz.plred-hacjenda.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|