我得到了包含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