我正在編寫一個可以執行不同SQL語句的應用程序(用戶將這些語句指定爲一個字符串值)。我在用着 」;」作爲語句之間的分隔符(一次用戶可以執行許多DML語句)。但是在DML語句中,可以有一個varchar值「;」內。替換符號的正則表達式
insert into A values(1, 'sda;asdad');
insert into A values(2, 'asdsa');
我的第一個想法是使用String#split(String regex)
。但我不知道如何創建一個正則表達式,這將有助於僅由那些不在varchars中的分號分割。你能提出一個建議嗎?或者有另一種解決方法?
這是一個好主意,但它會好一些用戶不知道有關分號必須進行轉義,所以他/她必須有輸入SQL字符串就像在Oracle SQL Developer中或PL/SQL開發人員 – maks
如果沒有字符轉義,你將基本上開始編寫一個解析器。檢查字符串文本中是否出現分號是非平凡的。 –