伪代码,未经测试,只是为了证明这个想法:
while (line = readLine()) {
String cmdString = null;
if (line.beginsWith("create" || line.beginsWith("alter") ...) {
String prevIoUsLine = line;
while (line = readLine()) {
if (line.equals("/") && prevIoUsLine.endsWith(";")) {
executesql(cmdString);
break;
}
prevIoUsLine = line;
cmdString = cmdString + line;
}
}
if (line.beginsWith("insert" || line.beginsWith("update") ...) {
String prevIoUsLine = line;
while (line = readLine()) {
if (line.equals("\n") && prevIoUsLine.endsWith(";")) {
executesql(cmdString);
break;
}
prevIoUsLine = line;
cmdString = cmdString + line;
}
}
// skip others
}