ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

132、Open SQL新特性与CDS视图

132、Open SQL新特性与CDS视图 132、Open SQL新特性与CDS视图上周调一个生产报表,现象特别邪门:SE38里开发机跑得好好的,数据一条不少,一到生产环境就是查不出数,用户天天催。我拿ST05跟了一遍SQL,差点背过气去——程序里一个三层循环,每个循环各发一条SELECT单笔取数,再嵌套一个SELECT AVG,总共发了上百条SQL,慢就算了,有一层子查询带错了条件,生产数据多了就超了short dump。后来一怒之下把这块逻辑全删了,直接用CDS视图一条SQL关联出来,加上路径表达式,代码短了一大截,生产秒开,问题也没了。打那以后我算彻底把Open SQL新特性和CDS视图当成吃饭家伙了。先说Open SQL的新特性。很多老顾问写ABAP还在用7.30以前的套路——先定义工作区、定义内表,然后SELECT去填。新语法直接内联声明,比如:SELECT carrid, connid, seatsmax FROM sflight INTO TABLE @DATA(flights).注意这里INTO后面的@DATA是必须的,表示内联声明内表,后面直接用flights就行。好多新手忘了那个@符号,编译直接把你卡死。还有INTO @FIELD-SYMBOL,那是给字段符号用的,平时顺手写明就行。从7.40开始,Open SQL的SELECT语句里可以塞各种表达式。以前要算个剩余座位,只能先把数据取出来到ABAP里再减,现在SQL里一步到位:SELECT carrid
返回列表