[mssql] string vergelijken

Pagina: 1
Acties:

  • Tinuske
  • Registratie: September 2002
  • Laatst online: 08-02 20:43
Het volgende:

Ik lees logfiles in en wil deze in een mssql database opslaan
Even een versimpeling van mijn probleem

De logfiles zien er zo uit:
1 blahblahblah System StartUp completed at 19:30 blahblahblh
2 blahblabhablh System Restarted blabhlabhb
3 blabhalbhalbh Application Restarted blabhalbah

de typetable ziet er zo uit:

TypeID | Type
1 StartUp
2 Restarted

Dit wil ik opslaan in een nieuwe tabel in de database
LineID | TypeID
1 | 1
2 | 2
3 | 2

Ik geef dus aan een stored procedure een lange string mee, en ik wil de TypeID's terug, waarvan een Type String voorkomt in die lange string.
Is dit in een stored procedure op te lossen ? Of moet ik de typetable helemaal ophalen en elke keer door de dataset loopen om te kijken of een typestring voorkomte in de "lange string"

Wat is een nette oplossing ?

Alvast bedankt!

[ Voor 5% gewijzigd door Tinuske op 14-03-2005 13:50 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Wat heb je zelf al geprobeerd en bedacht? En waarom ging dat niet goed? Heb je al gezocht op GoT en Google (groups)? Wat heb je daar gevonden en waarom voldeed dat niet?

Ikzelf zou denk ik met een like-statement aan de gang gaan. Ik denk alleen wel dat je daarmee nogal intensief elke string moet doornemen, omdat je voor elk bekend type moet gaan kijken of die aanwezig is in de string.
Om een en ander een beetje performant te maken denk ik dat je de parsing in je applicatie moet doen om vervolgens alleen de gegevens die opgeslagen moeten worden aan de database te geven, of je moet een ingewikkelde function gaan schrijven in MSSQL. Een stored procedure is volgens mij hier niet bij uitstek geschikt voor. Maar dat is mijn idee ;)

My personal website


  • Tinuske
  • Registratie: September 2002
  • Laatst online: 08-02 20:43
het probleem met een stored procedure is dat je een lange string meegeeft als parameter
en wil weten of er een STUKJE van die string gelijk is aan een type string uit de tabel. (dus simpel gezegd, welke typestrings uit de tabel , komen in de meegegeven string voor)

ziet er een beetje gek uit, maar het komt op dit neer wat ik wil

WHERE @logstring LIKE %TypeTable.Type%

Is hier uberhaupt een standaardfunctie voor in mssql ?

Heb uiteraard al wel op GoT en google gezocht, maar hierover niets kunnen vinden.
(normaal gesproken zoek je ook op een stukje uit een string in een tabel ipv vice versa, zoals dit geval)

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 05-05 21:36
Tinuske schreef op maandag 14 maart 2005 @ 14:07:
het probleem met een stored procedure is dat je een lange string meegeeft als parameter
en wil weten of er een STUKJE van die string gelijk is aan een type string uit de tabel. (dus simpel gezegd, welke typestrings uit de tabel , komen in de meegegeven string voor)

ziet er een beetje gek uit, maar het komt op dit neer wat ik wil

WHERE @logstring LIKE %TypeTable.Type%

Is hier uberhaupt een standaardfunctie voor in mssql ?

Heb uiteraard al wel op GoT en google gezocht, maar hierover niets kunnen vinden.
(normaal gesproken zoek je ook op een stukje uit een string in een tabel ipv vice versa, zoals dit geval)
Heb je het al geprobeerd?

Volgens mij werkt namelijk het voor de hand liggende:
code:
1
2
3
4
5
CREATE PROCEDURE VindInLog 
@Variabele VARCHAR(100) AS
  SELECT TypeID FROM tabel2 where @Variabele LIKE '%'+Type+'%'

GO

[ Voor 14% gewijzigd door jvdmeer op 14-03-2005 19:45 ]