用过Oracle都应该有一个SQL Plus,现在我的问题是如何实现SQL Plus中执行SQL语句的功能。
以下的方法不是我要的:
用一个文本框,获得用户新输入的SQL文本,然后使用编程接口直接执行这个SQL语句
我的意思是,解析SQL文本,分析语义然后完成指定的动作,都必须自己完成。如果给出有价值的回复,我可以给5000分,决不食言

解决方案 »

  1.   

    貌似很简单的JDBC就能完成你的功能不知道你想要什么结果
      

  2.   

    解析SQL文本,分析语义然后完成指定的动作解析文本,分析语义然后完成指定的动作,这些都不是在客户端的SQL*PLUS中完成的,这些都是在DB 服务器端的Shared Pool中完成的,和SQL*PLUS没关系主想要的是Oracle的SQL解析过程,估计只能找Oracle要了,更估计人家也不给(涉及到Oracle的核心代码肯定不能给的,不过网上应该有相关的理论的东西)
      

  3.   


    分析SQL文本,获得SQL的语义都不是问题.现在的问题是解析工作全部处理完了后语义要求的操作如何完成.
    比如有一个SQL语句: UPDATE A SET A.A = "A.A.A"这个SQL语句可以解析,问题是解析后知道了需要将A表的A字段设置为"A.A.A",这个动作如何完成呢?
      

  4.   

    而且你这有啥意思啊?本身数据库已经封装好了,难道你不用数据库,不用数据库又用SQL干啥,难道想自己写个数据库???
      

  5.   

    把程序开发的事情强加给SQL语句来完成?
    那就写个存储过程来搞.
      

  6.   


    经过解析就已经转换成C了么,当然就按照要求去查寻A表满足条件的数据块,然后根据更新A字段的值
      

  7.   

    大部分sql语句是根据某些语法树来优化的,相关的数学只是没几个博士是搞不定吧.
      

  8.   

    关于SQL的完整语法,文档大部分都是公开的,所以自己做个语法解析倒不是什么大问题。
    关键还是前面几位提到的,解析完成之后如何生成执行代码呢?不太明白楼主究竟想达到什么样的效果。
      

  9.   


    你这个C是什么意思? "查询A表满足条件的数据块",这个意思是直接文件操作?那岂不是要知道数据库文件
    在哪里以及文件格式,难道没有API么?
      

  10.   

    oracle的核心是C写的阿经过解析形成语法树之后,Oracle根据统计信息选择执行代价最小的执行计划(CBO),然后最后真实修改数据还是C语言的完成的阿偶暂时没有听说过这些东西提供了API一些开源的数据库可能会提供数据库文件的格式和数据结构
      

  11.   

    打开SQL Plus的Command Window,然后把要执行的SQL文本拖进去就行;
    如:@ e:/2.sql,前面一定要加@,这样就可以执行..
      

  12.   

    嗯……其实你只是想写一个sql语句解析器……