首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ORA-01722 :添加子查询时无效的数字抛出

ORA-01722 :添加子查询时无效的数字抛出
EN

Stack Overflow用户
提问于 2018-05-14 13:49:30
回答 2查看 223关注 0票数 1

查询中有一个错误ORA-01722。这段代码为我提供了命令列表。我需要添加一个子查询才能得到最后的有序命令。下面的代码运行良好(使用业务对象生成),我尝试添加我在评论中留下的行

代码语言:javascript
运行
复制
SELECT
ltrim(SAP_MARA.MATNR,'0'),
SAP_MAKT.MAKTX,
SAP_MARA.MTART,
SAP_MARA.MATKL,
SAP_EKKO.EKGRP,
SAP_EKPA.LIFN2,
SAP_EKKO.EBELN,
SAP_EKPO.netwr,
SAP_EKKO.AEDAT
-- r.lastDate
FROM
SAP_MARA,
SAP_MAKT,
SAP_EKKO,
SAP_EKPA,
SAP_EKPO
--,( select EBELN , max(AEDAT) as lastDate from SAP_EKKO group by EBELN) r 
WHERE
( SAP_EKKO.MANDT=SAP_EKPO.MANDT and SAP_EKKO.EBELN=SAP_EKPO.EBELN  )
AND  ( SAP_MAKT.MATNR(+)=SAP_MARA.MATNR
  and SAP_MAKT.SPRAS(+)='F'  )
AND  ( SAP_MARA.MATNR(+)=SAP_EKPO.MATNR  )
AND  ( SAP_EKPO.EBELN like '45%'
and SAP_EKPO.MATNR<>' '  )
AND  ( SAP_EKKO.EBELN like '45%' and SAP_EKKO.LIFNR<>' '  )
AND  ( SAP_EKPA.MANDT=SAP_EKKO.MANDT and SAP_EKPA.EBELN=SAP_EKKO.EBELN  )
AND  ( SAP_EKKO.BUKRS= '1000'  )
 --and  SAP_EKKO.AEDAT = r.lastDate
;

当我将子查询称为查询时,子查询也会工作。我知道此错误来自尝试将字符串转换为数字(可能在WHERE子句中),但我不知道为什么只有在添加这几行时才会出现这种情况。

有人能帮我吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-14 14:06:38

我相信,如果您移动自连接,您应该能够避免错误。尝试以下几点:

代码语言:javascript
运行
复制
SELECT
ltrim(SAP_MARA.MATNR,'0'),
SAP_MAKT.MAKTX,
SAP_MARA.MTART,
SAP_MARA.MATKL,
k.EKGRP,
SAP_EKPA.LIFN2,
k.EBELN,
SAP_EKPO.netwr,
k.AEDAT
FROM
SAP_MARA,
SAP_MAKT,
SAP_EKKO k,
SAP_EKPA,
SAP_EKPO
WHERE
( SAP_EKKO.MANDT=SAP_EKPO.MANDT and SAP_EKKO.EBELN=SAP_EKPO.EBELN  )
AND  ( SAP_MAKT.MATNR(+)=SAP_MARA.MATNR
  and SAP_MAKT.SPRAS(+)='F'  )
AND  ( SAP_MARA.MATNR(+)=SAP_EKPO.MATNR  )
AND  ( SAP_EKPO.EBELN like '45%'
and SAP_EKPO.MATNR<>' '  )
AND  ( SAP_EKKO.EBELN like '45%' and SAP_EKKO.LIFNR<>' '  )
AND  ( SAP_EKPA.MANDT=SAP_EKKO.MANDT and SAP_EKPA.EBELN=SAP_EKKO.EBELN  )
AND  ( SAP_EKKO.BUKRS= '1000'  )
and  k.AEDAT = (select max(AEDAT) from SAP_EKKO k2 where k2.ebeln = k.ebeln)
;
票数 1
EN

Stack Overflow用户

发布于 2018-05-14 14:05:26

我确实简化了代码。命令号格式是NUMBER。

希望能帮上忙。

代码语言:javascript
运行
复制
Select 
Command_Number,
LastDateOrder
from 
SAP_EKKO,
( select Command_Number , max(DATE) as lastDate from SAP_EKKO group by 
Command_Number) r 
where
SAP_EKKO.Command_Number = r.Command_Number
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50331993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档