我得到了包含20,000多行的SQL
文件。 sql
由程序ddl和dml组成。我发现一个'更快'的方式来分割文件...将单个文件拆分为多个文件
所以我想创建一个脚本,根据功能拆分内容。以下是我的正则表达式:
String sp_regex = "(CREATE OR REPLACE PROCEDURE) .+(SHOW ERRORS;)$";
String insert_regex = "(INSERT INTO) .+(SHOW ERRORS;)$";
String delete_regex = "(DELETE FROM) .+([)];)$";
String table_regex = "(CREATE TABLE) .+([)];)$";
但是没有一个正则表达式正在工作。内容根本没有分裂。我的正则表达式有什么问题?
样品SQL:
CREATE OR REPLACE PROCEDURE "SCHEMA"."SP" (
......
);
/
SHOW ERRORS;
CREATE TABLE "SCHEMA"."TABLE" (
......
);
INSERT INTO "SCHEMA"."TABLE" (......) VALUES ("......");
DELETE FROM "SCHEMA"."TABLE" WHERE ..... = "....";
很难说不知道你的文件是怎么样的以及你如何使用正则表达式。我的猜测是你没有使用'Pattern.MULTILINE'选项编译正则表达式,因此'$'只匹配字符串的末尾,而不是每行的末尾。 – 2015-01-21 11:41:11
我在文件@TimPietzcker中添加了示例sql格式。 – Chin 2015-01-21 11:50:40