---
title: "Byta ut ett tecken mitt i text!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/116496-byta-ut-ett-tecken-mitt-i-text"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Lasp"
published: "2004-11-23T08:34:41.000Z"
updated: "2004-11-24T13:51:32.000Z"
replies: 12
views: 478
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/116496-byta-ut-ett-tecken-mitt-i-text"
---

# Byta ut ett tecken mitt i text!

## #1 — Lasp, 2004-11-23T08:34Z

Jag har slängt in de gamla .Ini filerna i en tabell som heter just Ini.
Där har jag tre kolumner, först Progr som skall vara "Car2000", sedan Sign som är "!MM"
samt ett blobfält Ntext som heter ini, där det kan se ut som följer:
Det ligger alltså ett 

Utdrag ur Car 14

\[Params\]
ObjKalTimer=60
Db=PROVIDER=SQLOLEDB.1;Integrated......
LastLogin=Lennart Aspenryd
EnrInterna=1
EnrFaktura=1
EnrKontoK=0
EnrKontant=0
KmKontroll=0
....
Om jag nu vill ändra värdet på EnrFaktura från 1 till 0 !
Hur ser en sådan SQL fråga ut?

Permalänk: https://www.webforum.nu/p/116496

## #2 — Peeer, 2004-11-23T08:44Z

Tror inte det går (fast man har ju haft fel förut)! Det enklaste är nog att läsa av hela fältet, ändra värdet i programkoden och sen updatera posten i databasen igen.

/r ... man har ju fel igen :e

Permalänk: https://www.webforum.nu/p/1491071

## #3 — LarsG, 2004-11-23T08:47Z

```
update ini set car14 = replace(car14,'1','0')
where car14 like 'EnrFaktura%'
and progr = 'Car200'
```

Permalänk: https://www.webforum.nu/p/1491073

## #4 — Lasp, 2004-11-23T08:59Z

Ser bra ut men jag får "Fel i SQL Sträng"
Om man börjar med att plocka ut nuvarande värde för kontroll, hur skulle det se ut?

Permalänk: https://www.webforum.nu/p/1491078

## #5 — Lasp, 2004-11-23T09:09Z

Så här ser en dump ut:

Bilagor:

- [select_from_ini.gif](https://www.webforum.nu/a/5005.gif)

Permalänk: https://www.webforum.nu/p/1491089

## #6 — LarsG, 2004-11-23T16:24Z

Access? Äldre version? Har för mig att nya versioner av Access har stöd för funktionen replace.

Det borde gå att lösa med mid/instr också. Hur pass specifik är denna funktion? Dvs, vill du kunna uppdatera flera värden eller gäller det enbart EnrFaktura. Om det är det senare fallet 

```
update ini set car14 = 'EnrFaktura=0'
where car14 like 'EnrFaktura=1'
and progr = 'Car200'
```

Permalänk: https://www.webforum.nu/p/1491341

## #7 — Lasp, 2004-11-23T16:32Z

Nej det är en MS SQL db Skärmdumpen är gjord med DbaMgr2 och anledning är att jag vill att användarna skall kunna ändra ett specifikt värde. Jag kommer att bygga ett underhållsgränssnitt så småningom. Just i detta fall skall Prog vara "Car2000" och Sign "!MM" sedan ligger hela raddan av värdefält på det sättet som jag skrev i första inlägget. Jag kanske skall ordna detta med underhåll, men jag vet att jag har gjort ett databasdesignfel så jag vill ju gärna bygga om det hela först.

Permalänk: https://www.webforum.nu/p/1491350

## #8 — Lasp, 2004-11-23T16:43Z

jag kör denna fråga

 select \* from ini  where prog='car2000'

då ser resultatet ut så här:

Prog;Signr;Ini;
Car2000;!MM;\[Params\]
ObjKalTimer=60
Db=PROVIDER=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Car14;Data Source=ASKEN
LastLogin=Lennart Aspenryd
EnrInterna=1
EnrFaktura=1
EnrKontoK=0
EnrKontant=0
KmKontroll=0
CheckOrgNr=1
CheckPnr=1
Language=Swe
dg_timer=5
CustCompanyTimer=0
Custnote=1
SDB=PROVIDER=SQLOLEDB.1;User ID=sa;Password=system;Persist Security Info=False;Initial Catalog=Car_Stat;Data Source=xxxx
Skrivare=hp deskjet 990c series
\[Setup\]
rptDirectory=C:\\Program\\Car2000\\Rapporter\\
Preview=1
MomsCountConst=2
DefaultCDR=1
PaymentOnBooking=1
;

Då är det enskilda värden som jag vill komma åt att ändra.

Permalänk: https://www.webforum.nu/p/1491358

## #9 — LarsG, 2004-11-23T16:52Z

Då skall det inte vara något problem med att använda replace. (Jag testade till och med.)

Permalänk: https://www.webforum.nu/p/1491365

## #10 — Lasp, 2004-11-23T17:23Z

OK Jag får det inte att fungera. Den (SQLsatsen) säger ogiltigt kolumnnamn Car14.  Jag tog den första satsen du skrev LarsG. :birp  :P

Permalänk: https://www.webforum.nu/p/1491370

## #11 — LarsG, 2004-11-23T17:27Z

Då blev det missförstånd med kolumnnamn

```
update ini set ini = replace(ini,'EnrFaktura=1','EnrFaktura=0')
where ini like '%EnrFaktura=0%'
and prog = 'Car200'
and signr = '!MM'
```

Permalänk: https://www.webforum.nu/p/1491372

## #12 — Lasp, 2004-11-23T17:33Z

Felmess! Konstigt nog på svenska!!
"Argumentdatatypen ntext är ogiltig för argument1 i funktionen replace."

Permalänk: https://www.webforum.nu/p/1491375

## #13 — LarsG, 2004-11-24T13:51Z

Kan du byta typ till nvarchar? Den har en maxlängd på 4000 tecken och då skall replace fungera. Om det inte går att byta datatyp så ser jag inget alternativ till att hämta upp värdet, förädra det och stoppa tillbaks det.

Permalänk: https://www.webforum.nu/p/1491878

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/116496-byta-ut-ett-tecken-mitt-i-text
