老师好,又有问题了,说是下面的这个sql标示符过长,在pl/sql里提示的错误,求指点

selecta.al_data,a.al_code,a.al_desc,(whenal_data='Pass'andal_code='300'andal_desc='It... select a.al_data,a.al_code,a.al_desc,(when al_data = 'Pass' and al_code = '300' and
al_desc =
'It has stopped 2 hours.Pls check "users\cusotm\in" directory' then
'一级'
when al_data = 'JYJY' and al_code = '300' and
al_desc =
'It has stopped 2 hours.Pls check "users\ciq\in" directory' then
'一级'
when al_data = 'PASSINFO' and al_code = '750' and
al_desc =
'PASSINFO DataBase Can’t Connect!' then
'一级'
when al_data = 'PTAEDI' and al_code = '701' and
al_desc =
'SomeThing Error Please check DB GJXX-it' then
'一级'
when al_data = '不定' and al_code = '200' and
al_desc =
'Trigger has recieve more files from xxx ,System stop it' then
'二级'
end) as d

from alert_log a
去掉al_desc这个字段就可以执行
展开
 我来答
longrenyingdc8ecb1
2016-11-10 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2367万
展开全部
case when的语句是这样写的么?
应该是
case when .... then......
when.......then......
.....end
你这里少了case这个单词。
更多追问追答
追问
是忘掉了,那它提示标识符过长这个怎么解?老师
追答
很简单,没找到case关键字,他就不认为这是一个case when的语句,而是一个字段,毕竟oracle没有以when开头的语句,作为一个字段来说,你认为这一串能显示什么?理所当然的什么都不能显示,但是在这一串中有字符型的数据,这个内容oracle认识,但是这个和其他的连在一起,他就不认识了,所以就显示标识符过长,也就是有一部分东西他不认识的意思。
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式