Libre Office

REPLACE in UPDATE

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
andiair
Beiträge: 4
Registriert: Di 25. Aug 2015, 10:42

REPLACE in UPDATE

Beitrag von andiair » Di 25. Aug 2015, 10:48

Hallo,
ich versuche gerade einen REPLACE in einem UPDATE auszuführen, bekomme aber folgende Meldung im Status
"1: Undefinierte Funktion 'REPLACE' in Ausdruck."

Hier ist mein verwendeter Code

Code: Alles auswählen

UPDATE tblPart
SET externalDocument1=REPLACE(externalDocument1,'Documents','Datenblätter')
WHERE (externalDocument1 IS NOT NULL AND externalDocument1 LIKE 'Documents');
Vielelicht kann mir dort ja jemand weiterhelfen

Schonmal Dank für eure Mühen.

Andi

andiair
Beiträge: 4
Registriert: Di 25. Aug 2015, 10:42

Re: REPLACE in UPDATE

Beitrag von andiair » Di 25. Aug 2015, 12:17

Danke für die superschnelle Reaktion

Das mit dem % in dem WHERE habe ich in meiner Formel hier, ich wollte nur nicht den kompletten Laufwekspfad hier posten und habe das zuviel gelöscht.

Ich möchte in den Inhalten der Spalte
externalDocument1

den Text
'$(MD_DOCUMENTS)\Datenblätter\'
durch
'P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\'
ersetzen

Mit
SET externalDocument1 = 'Documents, Datenblätter'
schreibe ich ja fest 'Documents, Datenblätter' rein.

Hier meine Original Formel, die nicht funktioniert

Code: Alles auswählen

UPDATE tblPart
SET externalDocument1=(REPLACE(externalDocument1,'$(MD_DOCUMENTS)\Datenblätter\','P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\'))
WHERE (externalDocument1 IS NOT NULL AND externalDocument1 LIKE '$(MD_DOCUMENTS)\Datenblätter\%');

andiair
Beiträge: 4
Registriert: Di 25. Aug 2015, 10:42

Re: REPLACE in UPDATE

Beitrag von andiair » Di 25. Aug 2015, 13:25

Hallo,
hier man Problem Beispüielhaft dargestellt. Ich muss den Pfad absolut für einen Link auf ein Datenblatt angeben.

In der Spalte externalDocument1 stehen z.B. folgende Werte
$(MD_DOCUMENTS)\Datenblätter\JAN\JAN.UMG96x_de.pdf
$(MD_DOCUMENTS)\Datenblätter\ABT\ABT.ZPx12x_de.pdf
$(MD_DOCUMENTS)\Datenblätter\ASK\ASK.BD100_125AL_de.pdf
...

Das sollte zu
P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\JAN\JAN.UMG96x_de.pdf
P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\ABT\ABT.ZPx12x_de.pdf
P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\ASK\ASK.BD100_125AL_de.pdf
werden.

eben suche nach
$(MD_DOCUMENTS)\Datenblätter\

ersetze durch
P:\EPLAN_Stammdaten_System\Dokumente\EPL\Datenblätter\

Ich hoffe so ist es verständlicher.

Danke
Andi

andiair
Beiträge: 4
Registriert: Di 25. Aug 2015, 10:42

Re: REPLACE in UPDATE

Beitrag von andiair » Di 25. Aug 2015, 16:42

Hi nikki,
danke für deine Antwort und deine Bemühungen, aber meine Frage als "schlecht" zu bezeichnen finde ich nicht ganz treffend.

Ich hatte klar ein REPLACE in meiner SQL-Anweisung.

Grüße
Andi

F3K Total
* LO-Experte *
Beiträge: 2516
Registriert: So 10. Apr 2011, 10:10

Re: REPLACE in UPDATE

Beitrag von F3K Total » Di 25. Aug 2015, 16:50

Hi, habe gerade dieses SQL-Statement erfolgreich durchgeführt:

Code: Alles auswählen

update "Adressen" set "Adresse" = Replace("Adresse",'P.O.','XXX')
Tabellen und Spaltennamen mit Kleinbuchstaben immer in doppelte Anführungszeichen, zumindest für die eingebettete HSQL Datenbank.
Dein Ausdruck wäre also

Code: Alles auswählen

UPDATE "tblPart"
SET "externalDocument1"=REPLACE("externalDocument1",'Documents','Datenblätter')
Die Where Klausel kann wirklich weggelassen werden
Wenn Du eine andere Datenbank als die HSQL DB verwendest, musst du natürlich schauen, ob sie REPLACE beherrscht und wenn, wie die Syntax genau ist.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Open Office
Antworten