Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java从.SQL文件中提取SQL命令_Java_Sql - Fatal编程技术网

使用Java从.SQL文件中提取SQL命令

使用Java从.SQL文件中提取SQL命令,java,sql,Java,Sql,我需要使用java从.SQL文件中获取SQL命令 该文件包含开头带有“-”的行,因此理想情况下它会忽略这些行 我已经研究过如何使用.useDelimiter((;(\r)?\n)(-\n)” 我需要使用一个while循环来读取文件并查找SQL命令,并在找到它们时执行它们。我所看到的例子似乎不是很有效 在此方面的任何帮助都将不胜感激:)你确定你真的想要这个吗?使用特定于DB的命令行实用程序运行此脚本要容易得多 例如,对于MySql,命令行是MySql-uUSER-pPASSWORD

我需要使用java从.SQL文件中获取SQL命令

该文件包含开头带有“-”的行,因此理想情况下它会忽略这些行

我已经研究过如何使用.useDelimiter((;(\r)?\n)(-\n)”

我需要使用一个while循环来读取文件并查找SQL命令,并在找到它们时执行它们。我所看到的例子似乎不是很有效


在此方面的任何帮助都将不胜感激:)

你确定你真的想要这个吗?使用特定于DB的命令行实用程序运行此脚本要容易得多

例如,对于MySql,命令行是
MySql-uUSER-pPASSWORD
它简单、快速且100%有效。如果要从java运行它,请使用
Runtime.getRuntime().exec()
ProcessBuilder


逐行读取SQL文件并忽略注释(使用正则表达式“^--”或
line.startsWith(“--”)不是问题
。查找每个SQL语句的开头和结尾是一个问题。此外,您不能单独从脚本运行语句。SQL支持变量。一个语句可以定义变量,另一个语句可以使用它。另请参见@Matt Fenwick写的内容。

这是一个看似简单的问题,可能很快失控。SQL实际上有一个非常复杂的语法,允许语句跨越多行、注释。很难在简单的while循环中处理。请查看更健壮的解决方案。也许这是一个选项?