为了避免在类中创建SQL语句字符串,我将它们作为.sql文件放置在同一包中,并在静态构造函数中将内容读入字符串。原因是由于SQL正在查询的ERP系统非常复杂,所以SQL本身也很复杂。
这种方法没有问题,但是由于SQL读取机制只是简单地读取整个文件,因此如果该文件中有任何注释位于行末,那么读取可能会失败,因为首先会删除多余的空格和换行符。全注释行(即以“--”开头的行)将被删除。
我可以改进简单的读取方法来读取文件并删除注释行等,但我不得不想知道是否已经有可用于读取SQL文件并清理其内容的工具。
这种方法没有问题,但是由于SQL读取机制只是简单地读取整个文件,因此如果该文件中有任何注释位于行末,那么读取可能会失败,因为首先会删除多余的空格和换行符。全注释行(即以“--”开头的行)将被删除。
我可以改进简单的读取方法来读取文件并删除注释行等,但我不得不想知道是否已经有可用于读取SQL文件并清理其内容的工具。
left join
中的case
语句和嵌套的select
语句而有大量空格,因此可以通过整理来节省很多空间。我们的RDBMS(OpenEdge)在错误中也不提供行号,并且实际上包括所有没有换行符的空格,使得识别错误更加困难。但是您的观点对于其他情况仍然是有效的。 - Brett Ryan