我在做查询的plsql查询的时候报错 ora -01722错误,下面是我的查询语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在做查询的plsql查询的时候报错 ora -01722错误,下面是我的查询语句相关的知识,希望对你有一定的参考价值。
这个是我的语句有大神帮看下吗?
select C.GLLSH,
C.ZYLSH,
C.YZLSH,
C.BRBSLB,
C.YZGLFYLSH,
C.CZR,
'1' as choose,
' 0 ' as reupload,
c.YZFY_DRSC,
c.fphm
from (select (case
when a.sbxh is not null then
to_char(a.sbxh)
else
'-'
end) as GLLSH,
(case
when b.input0 is not null then
b.input0
else
'-'
end) as ZYLSH,
(a.cfsb) as YZLSH,
'1' as BRBSLB,
(case
when a.cfsb is not null then
to_char(a.cfsb)
else
'-'
end) AS YZGLFYLSH,
(case
when (select ygxm
from gy_ygdm
where d.fygh = gy_ygdm.ygdm
and rownum = '1') is not null then
(select ygxm from gy_ygdm where d.fygh = gy_ygdm.ygdm)
else
'-'
end) as CZR,
(select fyrq from ms_cf01 where ms_cf01.cfsb = a.cfsb) as FYRQ,
a.YZFY_DRSC,
e.mzlb,
e.brxz,
d.fphm
from ms_cf02 a,
suphisv3.v_zr_mzdj b,
ms_cf01 d,
ms_ghmx e,
ms_mzxx f,
WJW_DRSC_MZ_FPHM g
where d.cfsb = a.cfsb
and d.brid = b.patient_id
and d.fphm = f.fphm
and e.sbxh = f.ghgl
and f.fphm = g.fphm) c
where c.fyrq >= to_date('20160401 00:00:00','yyyymmdd hh24:mi:ss')
and c.fyrq <= to_date('20160430 00:00:00','yyyymmdd hh24:mi:ss')
and c.YZFY_DRSC is null
and c.mzlb = '1'
and c.brxz = '1002'
group by C.GLLSH,
C.ZYLSH,
C.YZLSH,
C.BRBSLB,
C.YZGLFYLSH,
C.CZR,
c.YZFY_DRSC,
c.fphm
第二条语句 没有指定HAMDSN is null ,所以没有问题
第三条语句 虽然指定了HAMDSN is null , 但面的表和外面的表没有关系,所以也没有问题
注:sql语句如果没有特指的话 后面的where会自动过滤掉了null(因为默认情况下 null不参与运算的 这个楼主应该知道) 所以就不会报错追问
我自己找到原因了。是d.brid = b.patient_id这个关联的字段有null
参考技术A 表结构贴一下啊数据库查询语句报错-ORA-00911: invalid character
数据库查询语句报错-ORA-00911: invalid character
根据自己经验总结下:
1.都是分号惹的祸,有时候sql语句后面有分好导致这种错误
2.还有一种是从别处copy过来的sql语句,中间的空格是中文导致的,这个很难发现
3.还有一种可能是字符编码问题,不过是这种问题的可能性很小
用户可以自己尝试下是哪一种导致的。
以上是关于我在做查询的plsql查询的时候报错 ora -01722错误,下面是我的查询语句的主要内容,如果未能解决你的问题,请参考以下文章
C#程序连接成功但是查询时候报错“ORA-12537:网络会话:文件结束”,求解答!
数据库查询语句报错-ORA-00911: invalid character
ORA-01219:数据库未打开:仅允许在固定表/视图中查询