暂无图片
分享
无语的跑步
2019-04-24
SQL在解析阶段的语法检查的原理和过程

SQL在share pool里面的Dictionary Cache查询来执行语义检查,知道客户端查询语句是否存在对象,是否存在对象列,是否存在权限。那请问语法检查是如何执行的?是内置有语法解析的工具吗?share pool怎么知道select语句写错了?

收藏
分享
5条回答
默认
最新
罗海雄

server process会进行语法分析,并根据数据字典进行权限分析,通过后再进行parse(可能是soft parse或者hard parse)

暂无图片 评论
暂无图片 有用 0
无语的跑步

我想知道服务器进程是怎么进行语法检查的?

暂无图片 评论
暂无图片 有用 0
罗海雄

那我就不清楚了。第一,Oracle是闭源软件,不会公开代码。第二,具体如何进行语法解析,对使用者完全没有意义。你要是想知道一些开源数据库的语法解析过程,倒是可以从源码中获取。

暂无图片 评论
暂无图片 有用 0
无语的跑步

好的,非常感谢

暂无图片 评论
暂无图片 有用 0
lastwinner
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏