Firebird 2,5 Zmiana wartości w bazie

0

Witam,

Na wstępie zaznaczę, że ogólnie nie używam zbyt często SQL jedynie jakieś proste selecty do wyciągania rzeczy z bazy.
A teraz problem jeden z programów zapisał w bazie dane w złym formacie i teraz pytanie jak poprawić ten format.
Dane w bazie to np. - 1234
Chciałbym tę daną zamienić na - [1234]

Pytanie jak najłatwiej to zamienić w bazie.

0
UPDATE tabela
SET kolumna=[1]
WHERE kolumna=1;
1

Jeżeli chcesz zmienić całą kolumnę to możesz wykonać Concatenate Strings

UPDATE tabel
SET kolumna= '[' || kolumna || ']'
 
0

Zmiana dla jednego to nie problem muszę zmienić dla kilkuset rekordów. Dodałem kilka dodatkowych warunków, pusiłem takiego quera:

update KT1INFORMACJEHIST set IR_TRESC = '['  || IR_TRESC || ']'
where IR_CZAS >= '2014-07-04 00:00:00' 
 and IR_CZAS <= '2014-07-05 23:59:00'
 and IR_SNPO = 47201 ; 

Wyrzuca mi błąd "Arithmetic exception, numeric overflow, or string truncation. String right truncation."
Pole w bazie jest CHAREM

0

Co do tego błędu: (1 wynik z google)
http://www.firebirdfaq.org/faq79/

  1. String truncation
    It happens when the concatenated string doesn't fit the underlying CHAR or VARCHAR datatype size. If the result goes into a table column, perhaps it's a valid error. Or maybe you really need to increase the column size. Similar goes for intermediary values stored in stored procedure or trigger variables.

Czyt. Próbujesz wprowadzić do tabeli która np. Przechowuje PESELE i jest zdefiniowana na char(9) wartość o długości 11

0

Mam tę tabele ustawioną na CHAR 400 i nie wprowadzam wielkosci większej niż 8 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1