如何写一小段程序从一句sql里面解析出表名 在线等 谢谢大家了

hss821116 2006-07-10 01:24:11
比如select * from user,dept where user.id=1 order by id
写一小段程序得到表名为user 和 dept
...全文
148 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjjf 2006-07-10
  • 打赏
  • 举报
回复
mark 词法和语法分析可以解析出来的,有空给答案
infowain 2006-07-10
  • 打赏
  • 举报
回复
delphi的midas源代码里面有一个例子。
麦子_9 2006-07-10
  • 打赏
  • 举报
回复
up
trumplet 2006-07-10
  • 打赏
  • 举报
回复
如果from子句里有子查询,那么子查询里可能有很多逗号,
diggywang 2006-07-10
  • 打赏
  • 举报
回复
不现实的
前阵子我有朋友要开发一个地址解析系统,要能从一个新闻报道中摘出所有地址的数据(地址数据库已经具备),但是,实际结果肯定是还有更多的冗余结果,占到60%以上
kevinliuu 2006-07-10
  • 打赏
  • 举报
回复
sql = "select * from user,dept where user.id=1 order by id" ;
String[] t = sql.split("from") ;
sql = t[1] ;
t = sql.split("where") ;
sql = t[0] ;
t = sql.split(",") ;
for (int i = 0; i < t.length; i++)
{
System.out.println(t[i].trim());
}
navence 2006-07-10
  • 打赏
  • 举报
回复
这个...
盼高手些个sql文词法分析器
kevinliuu 2006-07-10
  • 打赏
  • 举报
回复
可以使用
hss821116 2006-07-10
  • 打赏
  • 举报
回复
都是select 的句子
select F_from,f_name from URL , name where url.id=user.id
这样的句子怎么解析
xuyang821225 2006-07-10
  • 打赏
  • 举报
回复
sql = "select * from user a ,dept b where user.id=1 order by id" ;
像这种有别名的。或者有子查询的。。。
xuyang821225 2006-07-10
  • 打赏
  • 举报
回复
要看你的SQL有多复杂了,这个解析的 格式可以自己研究下,我以前只写过解析操作的字段的(如INSERT 和 UPDATE)操作
kevinliuu 2006-07-10
  • 打赏
  • 举报
回复
sql = "select * from user,dept where user.id=1 order by id" ;
int indexF = sql.indexOf("from");
int indexW = sql.indexOf("where");
String s = sql.substring(indexF+4, indexW).trim() ;
String[] tablenames = s.split(",") ;
for (int i = 0; i < tablenames.length; i++)
{
System.out.println(tablenames[i]);
}

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧