Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re: create a perl script for pattern matching

by Ben Win Lue (Friar)
on Jul 01, 2005 at 09:34 UTC ( [id://471617]=note: print w/replies, xml ) Need Help??


in reply to create a perl script for pattern matching

It is rather easy to recognize a start of an SQL-Statement, because very few words are used. Mostly Select, Update, Insert or Delete and very few other words.
The problem is to recognize the end of the Statement. Are there semicola (";") at the end?
The rest is as easy as shown by holli.
  • Comment on Re: create a perl script for pattern matching

Replies are listed 'Best First'.
Re^2: create a perl script for pattern matching
by VSarkiss (Monsignor) on Jul 01, 2005 at 14:20 UTC

    Slightly OT, but

    It is rather easy to recognize a start of an SQL-Statement
    Is it? Here are some random snippets from past code I've written.

    select max(prod_id) from product where effdt = (select max(effdt) from product)
    or
    insert order (prod_id, prod_cnt) select prod_id, count(*) from product group by prod_id
    How many statements was that? In fact it's two, but if you just count keywords, you'll get four.

    The point is not to underestimate the tasks that faces the OP. Trying to make it work by just matching keywords gets the wrong answer against normal, everyday SQL very easily. SQL has a definite grammar that's precise, but it's not easy to parse thru. Additional difficulty comes from recognizing all the vendor-specific extensions to the language, but let's not go into that. :-)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://471617]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (5)
As of 2024-04-19 07:40 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found