Jump to content

zeichen ausschließen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

hi

 

@sql='AAAAAAAAAA xxxx BBBBBBBBBB, AAAAAAAAAA 1 BBBBBBBBBB , AAAAAAAAAA 2 BBBBBBBBBB

 

hier die Frage:

suche in @sql nach folgenden Texten

  • "AAAAAAAAAA 1 BBBBBBBBBB"

  • "AAAAAAAAAA 2 BBBBBBBBBB"

  • "AAAAAAAAAA BBBBBBBBBB"

  • "AAAAAAAAAA 3 BBBBBBBBBB"

  • "....."

  • "AAAAAAAAAA 999 BBBBBBBBBB"

 

die abstände zwischen aaa und bbb sind nicht konstant.

es darf zwischen aa und bb kein [^a-z] oder [^A-Z] existieren.

Zahlen oder Space sind erlaubt.

 

wie kann ich das mit einem like oder patindex oder anderes suchen?:confused:

 

freue mich über jeden hinweis:D

 

vg frank

Geschrieben

Moin,

ist etwas abstrakt was du da möchtest. Denke mal über eine

Normalisierung der Daten nach, wenn das möglich ist.

 

Ähnliche Beispiele die evtl. weiterhelfen, die korrekten Befehle hast du ja schon genannt:

 

http://www.mcseboard.de/ms-sql-server-forum-81/string-teile-feldes-selektieren-185551.html

 

http://www.mcseboard.de/ms-sql-server-forum-81/suchen-loeschen-bestimmter-zeichenanzahl-182008.html

 

Gruß Kai

Geschrieben
....die korrekten Befehle hast du ja schon genannt:....

 

ok ok, ich weiss aber nicht wie?

 

Was will ich machen:

 

	SELECT DISTINCT  'MyDB' As [DB_Name]
, syso.name  AS ObjectName
, syso.type AS ObjectType
from MyDB.sys.sql_modules AS sysc INNER JOIN
MyDB.dbo.sysobjects AS syso ON sysc.object_id = syso.id
WHERE (sysc.definition LIKE '%TABLOCKX%')

 

In der MyDB sind viele sehr viele SP's und UDF's. In denen sind einige select anweisungen die TABLOCKX verwenden. es soll nun auf sql 2008 r2 migriert werden und hier muss geprüft werden op das Schlüsselwort "With" davor steht.

 

wie kann ich das "EINFACH" lösen:confused:

 

vg f

Geschrieben
...evtl. einfach nur mit ....

:suspect:

 

:rolleyes:aha... soweit war ich auch schon....

NATÜRLICH... :schreck:... du hast vollkommen recht....

 

Keep it simple!

 

Habe seit gestern auch ne Lösung gefunden.

Problem war, dass die Entwickler zwichen dem From und dem With kein Space sondern TAB verwendet haben.

Manchmal auch zwischen With und (TABLOCKX).

 

Mein Filter den ich definiert hatte lieferte keine Ergebnisse.

WHERE sysc.definition LIKE  '% with %(TABLOCKX) %'

 

Habe eine Funktion geschrieben, die mir die Anzahl der gefundenen TABLOCKX sowie die "with (TABLOCKX)" zählt.

 

sysc.definition wurde als Übergabewert für @SQLText verwendet.

In der Funktion wird erstmal der Text von Sonderzeichen bereinigt und dann durchsucht....

 

FUNCTION [dbo].[CountKeywordHits] ( @SQLText nvarchar(max)....	   
... 
set @SQLText = REPLACE(@SQLText,CHAR(9), ' ') --del tba
set @SQLText = REPLACE(@SQLText,'with ', ' with ')  
set @SQLText = REPLACE(@SQLText,'  ', ' ')-- replace double spaces to one spache
set @SQLText = REPLACE(@SQLText,CHAR(13), ' ') -- recpace CR to space
set @SQLText = REPLACE(@SQLText,CHAR(10), ' ') -- recpace LF to space

 

Anschließend können die Vorkomnisse gezählt werden.:cool::D

 

...set @index = PATINDEX('% WITH (TABLOCKX)%', @SQLText)

 

Ok, dieses Thema kann als erfolgreich geschlossen werden.

Danke für die Denkanstösse ;-)

 

VG Frank

Geschrieben
:suspect:

 

:rolleyes:aha... soweit war ich auch schon....

NATÜRLICH... :schreck:... du hast vollkommen recht....

 

Keep it simple!

 

Habe seit gestern auch ne Lösung gefunden.

Problem war, dass die Entwickler zwichen dem From und dem With kein Space sondern TAB verwendet haben.

Manchmal auch zwischen With und (TABLOCKX).

 

Mein Filter den ich definiert hatte lieferte keine Ergebnisse.

WHERE sysc.definition LIKE  '% with %(TABLOCKX) %'

 

VG Frank

 

Du hast noch zusätzliche Leerzeichen im SuchString. Das passt dann nicht auf z.B. "WITH{CRLF}TABLOCKX"

WHERE sysc.definition LIKE '%WITH%TABLOCKX%'

Der sollte genau das gewünschte finden.

 

Gruß Kai

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...