1SQL::Tokenizer(3) User Contributed Perl Documentation SQL::Tokenizer(3)
2
3
4
6 SQL::Tokenizer - A simple SQL tokenizer.
7
9 0.20
10
12 use SQL::Tokenizer qw(tokenize_sql);
13
14 my $query= q{SELECT 1 + 1};
15 my @tokens= SQL::Tokenizer->tokenize($query);
16
17 # @tokens now contains ('SELECT', ' ', '1', ' ', '+', ' ', '1')
18
19 @tokens= tokenize_sql($query); # procedural interface
20
22 SQL::Tokenizer is a simple tokenizer for SQL queries. It does not claim
23 to be a parser or query verifier. It just creates sane tokens from a
24 valid SQL query.
25
26 It supports SQL with comments like:
27
28 -- This query is used to insert a message into
29 -- logs table
30 INSERT INTO log (application, message) VALUES (?, ?)
31
32 Also supports '', "" and "\'" escaping methods, so tokenizing queries
33 like the one below should not be a problem:
34
35 INSERT INTO log (application, message)
36 VALUES ('myapp', 'Hey, this is a ''single quoted string''!')
37
39 tokenize_sql
40 use SQL::Tokenizer qw(tokenize_sql);
41
42 my @tokens= tokenize_sql($query);
43 my $tokens= tokenize_sql($query);
44
45 $tokens= tokenize_sql( $query, $remove_white_tokens );
46
47 "tokenize_sql" can be imported to current namespace on request. It
48 receives a SQL query, and returns an array of tokens if called in
49 list context, or an arrayref if called in scalar context.
50
51 tokenize
52 my @tokens= SQL::Tokenizer->tokenize($query);
53 my $tokens= SQL::Tokenizer->tokenize($query);
54
55 $tokens= SQL::Tokenizer->tokenize( $query, $remove_white_tokens );
56
57 This is the only available class method. It receives a SQL query,
58 and returns an array of tokens if called in list context, or an
59 arrayref if called in scalar context.
60
61 If $remove_white_tokens is true, white spaces only tokens will be
62 removed from result.
63
65 • Evan Harris, for implementing Shell comment style and SQL
66 operators.
67
68 • Charlie Hills, for spotting a lot of important issues I haven't
69 thought.
70
71 • Jonas Kramer, for fixing MySQL quoted strings and treating dot as
72 punctuation character correctly.
73
74 • Emanuele Zeppieri, for asking to fix SQL::Tokenizer to support
75 dollars as well.
76
77 • Nigel Metheringham, for extending the dollar signal support.
78
79 • Devin Withers, for making it not choke on CR+LF in comments.
80
81 • Luc Lanthier, for simplifying the regex and make it not choke on
82 backslashes.
83
85 Copyright (c) 2007, 2008, 2009, 2010, 2011 Igor Sutton Lopes
86 "<IZUT@cpan.org>". All rights reserved.
87
88 This module is free software; you can redistribute it and/or modify it
89 under the same terms as Perl itself.
90
91
92
93perl v5.38.0 2023-07-21 SQL::Tokenizer(3)