请教如何判定一个where的条件表达式是否语法正确?

[复制链接]
查看11 | 回复9 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
select * from dual where 1=2
如何判定 1=2 是合法的表达式?
除了捕获exception外
谢谢

回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
不报错就是合法的表达式
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
风铃中の鬼 发表于 2011-11-8 12:36
不报错就是合法的表达式

谢谢,我要在报错之前知道,是否正确
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
这就是sql功力的体现了,where 1=2肯定是允许的啊
在报错之前判断,执行下就是啦,如果你对复杂的语法不熟悉的话
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
当然某些版本的BUG那另当别论,也许这个版本可以,到那个版本就报错,哈哈
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
dingjun123 发表于 2011-11-8 13:02
这就是sql功力的体现了,where 1=2肯定是允许的啊
在报错之前判断,执行下就是啦,如果你对复杂的语法不熟 ...

并非 永远是 1=2
这里只是举个例子
也可能是XX AND YY AND UUU
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
dingjun123 发表于 2011-11-8 13:02
这就是sql功力的体现了,where 1=2肯定是允许的啊
在报错之前判断,执行下就是啦,如果你对复杂的语法不熟 ...

如何体现

这表达式 会变的,又不是固定的,如果是固定就好办额
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
还是不明白需求。你这是动态SQL? 如果静态则编译器会告诉你。
如果是动态,用DBMS_SQL去解析看有没有报错。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
SQL文有没有错 执行一下就知道了。
楼主提问的本意似乎没有描述清楚,楼主现在遇到了什么问题,为什么会有这样的需求呢?
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
我的意思是:在执行这个 表达式之前,能否知道语法的是否合法?
执行一下肯定能知道了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行