[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [dtp-sqldevtools-dev] Problem parsing SQL generated using SQL Builder
|
Hi Brian,
Yes, the query was generated using the SQL Query Buider which is why I think it's a real issue. We are trying to incorporate SQL Query Builder in one of our wizards and we'd like to be able to parse the query after it's been created by the user using the SQL Query Builder. Currently we have to clean up the query after it's been created by stripping off the ` (backtick) characters before passing it to SQL Query Parser. I find it really strange that two tools (SQL Query Builder and SQL Parser) existing in the same project (DTP) would not properly work with each other.
Regards,
Artem
On Fri, Dec 11, 2009 at 6:08 PM, Brian Payton
<bpayton@xxxxxxxxxx> wrote:
Hi Artem,
Was the query generated by the SQL Query
Builder? What SQL dialect are you using? The syntax rules used
by the SQL Builder and the SQL Query Parser are fairly generic. According
to the ISO SQL standard, delimited identifiers such as 'test' should be
surrounded by double-quote characters. So
SELECT ID AS ID_NEW, NAME AS NAME_NEW FROM "test".EMPLOYEES
should parse OK.
Regards,
Brian
Brian Payton
SQL and XML Query Tools Development
IBM Silicon Valley Laboratory
From:
Artem Portnoy <artem.portnoy.ibi@xxxxxxxxx>
To:
dtp-sqldevtools-dev@xxxxxxxxxxx
Date:
12/11/2009 02:16 PM
Subject:
[dtp-sqldevtools-dev]
Problem parsing SQL generated using SQL Builder
Sent by:
dtp-sqldevtools-dev-bounces@xxxxxxxxxxx
Hi,
I'm using SQLQueryParserManager to parse a select statement that was generated
using DTP's SQL Builder. I'm getting the following error when I parse
org.eclipse.datatools.sqltools.parsers.sql.SQLParserException: Unable to
parse the input: "SELECT ID AS ID_NEW, NAME AS NAME_NEW FROM `test`.EMPLOYEES;".
at org.eclipse.datatools.sqltools.parsers.sql.AbstractSQLParser.parser(AbstractSQLParser.java:414)
at org.eclipse.datatools.sqltools.parsers.sql.SQLParserManager.makeAST(SQLParserManager.java:436)
at org.eclipse.datatools.sqltools.parsers.sql.SQLParserManager.parse(SQLParserManager.java:791)
at org.eclipse.datatools.sqltools.parsers.sql.query.SQLQueryParserManager.parseQuery(SQLQueryParserManager.java:326)
...
Caused by: lpg.lpgjavaruntime.BadParseException
at lpg.lpgjavaruntime.BacktrackingParser.parse(BacktrackingParser.java:142)
at lpg.lpgjavaruntime.BacktrackingParser.parse(BacktrackingParser.java:100)
at org.eclipse.datatools.sqltools.parsers.sql.AbstractSQLParser.parser(AbstractSQLParser.java:384)
I believe the problem is caused by the presence of backticks in the statement.
The error goes away when I remove the backtick characters, which is the
workaround I'm currently using. This does seem to be a problem since usage
of backticks is valid in SQL.
Regards,
Artem Portnoy_______________________________________________
dtp-sqldevtools-dev mailing list
dtp-sqldevtools-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dtp-sqldevtools-dev
_______________________________________________
dtp-sqldevtools-dev mailing list
dtp-sqldevtools-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dtp-sqldevtools-dev