Einzelnen Beitrag anzeigen

nahpets
(Gast)

n/a Beiträge
 
#32

Re: Falsche Zeichen in einem DB-Feld per SQL finden

  Alt 17. Jul 2008, 19:25
Hallo,

da hier bisher nichts gekommen ist, versuche ich es mal mit meinem "fundierten Halbwissen"

Wenn Du den Quelltext der Prozedur einer Query zuweist

Delphi-Quellcode:
zQuery1.sql.clear;
zQuery1.sql.add('SET TERM ^ ;');
zQuery1.sql.add('CREATE OR ALTER PROCEDURE CLEARNUMERIC (');
zQuery1.sql.add(' INPUTSTR Varchar(100)');
zQuery1.sql.add(')');
zQuery1.sql.add('RETURNS (Result Varchar(100)) AS');
zQuery1.sql.add('BEGIN');
zQuery1.sql.add(' Result = '''';');
zQuery1.sql.add(' WHILE (InputStr <> '''') DO BEGIN');
zQuery1.sql.add(' IF (''0123456789'' NOT LIKE ''%'' || SUBSTRING(InputStr FROM 1 FOR 1) || ''%'') THEN');
zQuery1.sql.add(' BEGIN');
zQuery1.sql.add(' Result = Result || SUBSTRING(InputStr FROM 1 FOR 1);');
zQuery1.sql.add(' END');
zQuery1.sql.add(' InputStr = SUBSTRING(InputStr FROM 2);');
zQuery1.sql.add(' END');
zQuery1.sql.add(' SUSPEND;');
zQuery1.sql.add('END^');
zQuery1.sql.add('SET TERM ; ^');
und anschließend die Query mit

zQuery1.ExecSQL; ausführst, so hoffe ich, dass dann in der Datenbank die Prouedur angelegt wurde.
Anschließend sollte eine Abfrage unter Benutzung der Prozedur funktionieren.

SQL-Code:
SELECT *
FROM IDOC_REAL
WHERE (SELECT result FROM CLEARNUMERIC(ScanCode)) <> 'F'
So wie omata das oben bereits beschrieben hat.

Stephan
  Mit Zitat antworten Zitat