2017-07-19 71 views
0

如何验证语法正确的Oracle查询或不在C#代码中。到目前为止,我试图在互联网上找到相关解决方案,但找不到任何解决方案。我不知道如何为此使用Oracle.ManagedDataAccess。如何在C#代码中验证Oracle查询字符串?

+0

激发sql并查看它做了什么?如果您的查询语法不对,它会引发异常。无论如何,不​​知道你的查询可能是什么样的,以及它来自哪里,我们甚至无法猜测如何验证它。 – HimBromBeere

+0

为什么你想首先验证它?你是否通过连接字符串来使用“动态sql”查询?无论您使用哪种验证方式,您都会遇到SQL注入攻击或转换问题。改用参数化查询。和/或像EF,Dapper等ORM/microORM –

+0

@HimBromBeere,实际上我想在执行到服务器之前验证查询字符串的语法。直接执行到服务器的限制,我无法一起获得所有错误。 – Anonymous

回答

0

C#编译器仅编译c#代码,而不是sql字符串,因此C#无法检查您的SQL查询是否在语法上正确。您只能通过一些直接连接到Oracle数据库的应用程序(例如Oracle SQL Developer,TOAD,SQLPlus等)来检查它。

+0

是C#不能直接验证任何查询字符串,但是我们有不同的解析器可用作T100SqlParser用于验证SQLServer查询字符串。如果有任何问题,我担心类似的Oracle查询字符串解析器。 – Anonymous

+0

有一个解析器可以在.NET中用来验证Oracle SQL查询,但我认为它是付费的。检查此[链接](http://www.sqlparser.com/download.php) –