ABAP读取数据库数据问题!

wcbforc 2008-09-13 10:56:25
....
start-of-selection.
*tables spfli.
data spfli_temp like spfli.
*uline.
select * from spfli into spfli_temp.
write:/ spfli_temp-carrid,spfli_temp-cityfrom,spfli_temp-cityto.
*uline.
endselect.
....
为什么改成:
start-of-selection.
*tables spfli.
data spfli_temp like spfli.
*uline.
select carrid cityfrom cityto from spfli into spfli_temp.
write:/ spfli_temp-carrid,spfli_temp-cityfrom,spfli_temp-cityto.
*uline.
endselect.
或改成:
start-of-selection.
tables spfli.
*data spfli_temp like spfli.
*uline.
select * from spfli .
write:/ spfli-carrid,spfli-cityfrom,spfli-cityto.
*uline.
endselect.

都不能运行呢(F8).
...全文
188 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jakesun223 2008-09-16
  • 打赏
  • 举报
回复
你的第二种改法是因为透明表与内表栏位不符造成的.第三种直接使用透明表应该是spfli~carrid的形式,你再试下.
PenleyWang 2008-09-16
  • 打赏
  • 举报
回复
正如楼上所说“因为透明表与内表栏位不符造成的”!
你的第二种改法定义的工作区spfli_temp包括了spfli表中所有列,而使用select语句仅选择了三列,当这三列值往工作区中插入值时,会按工作区中字段顺序来赋值,当出现类型不匹配等情况会出问题。如果只想取出指定列,可以定义一个只包含这三列的工作区或使用内表。如下:
data spfli_temp like table of spfli with header line.
select carrid cityfrom cityto from spfli into corresponding fields of table spfli_temp.
loop at spfli_temp.
write:/ spfli_temp-carrid,spfli_temp-cityfrom,spfli_temp-cityto.
endloop.

第三种改法应该是正确的。

2,679

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 ERP/CRM
社区管理员
  • ERP/CRM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧