我目前正在做一些oracle sql分析,並經常遇到無法正確解析各種sql分析器的有效sql語句。要麼他們解析它失敗,要麼他們的抽象語法樹被搞亂了。看來,真正能夠處理oracle sql的唯一解析器是他們自己的一個不公開的解析器,不能作爲獨立的解析器獲得。爲什麼沒有像樣的SQL解析器?
我知道,有不同的SQL語法和遵守所有的可能是不可能的。 但即使是聲稱是Oracle SQL解析器的解析器在所有情況下都不會成功。
你認爲什麼是使它很難實現特別是在一般或的Oracle SQL分析器SQL解析器的主要原因是什麼?
最佳, 請問
通過「valid sql statement」,你的意思是ANSI SQL是否正確?如果是這樣,不知道爲什麼(與標準定義)任何兼容的語法將無法被解析。由於Oracle的傳統原因,Oracle特定的語法(+)仍然受支持,但新代碼應該以ansi風格編寫。在此之前,祝你好運;) – tbone 2011-05-16 12:16:35
否與有效,我的意思是在一個特定的語法有效。 在我的情況下,我的Oracle SQL,我的解析器聲稱符合。 – Will 2011-05-18 15:32:47