如何通过内部表的属性在ABAP程序中创建新的数据库表?

2020-08-26 16:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hello SAP社区

我被要求添加一行代码,该代码将使用一个小程序中的现有内部表属性创建一个DB表。 我尝试了几个版本的CREATE TABLE <表名>(字段名,字段名2等),但均未成功。

您有没有碰巧知道如何做到这一点,并有一个可以分享的例子?

示例程序代码在这里,只是缺少我认为可能的最后一行代码....

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

REPORT ZTEST_ITAB2DBTAB。

类型:mytext的开头,
numb类型i,
name(10)类型c,
mytext的结尾。

类型mytab 类型为mytext的标准表。
类型为t_mytext的带默认键的mytext的标准表。

数据文本类型为mytext。 "工作区域
数据itab类型为mytab。"内部表
数据lt_names2类型为t_mytext。

text-numb =31。
文本名称='Tim'。
APPEND文本
清除文本。

text-numb = 36.
文本名称='Jacob'。
将文本附加到itab。
清除文本。
< br> text-numb =68。
text-name ='Jesse'。
将文本追加到itab。
清除文本。

在ITAB处将其插入文本。
写:/text-numb,文字名称。
ENDLOOP。

创建数据库表??????

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


Hello SAP社区

我被要求添加一行代码,该代码将使用一个小程序中的现有内部表属性创建一个DB表。 我尝试了几个版本的CREATE TABLE <表名>(字段名,字段名2等),但均未成功。

您有没有碰巧知道如何做到这一点,并有一个可以分享的例子?

示例程序代码在这里,只是缺少我认为可能的最后一行代码....

SPAN {font-family:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 {font-style:italic; 颜色:#808080; } .L0S32 {color:#3399FF; } .L0S33 {color:#4DA619; } .L0S52 {color:#0000FF; } .L0S55 {color:#800080; } .L0S70 {color:#808080; }

REPORT ZTEST_ITAB2DBTAB。

类型:mytext的开头,
numb类型i,
name(10)类型c,
mytext的结尾。

类型mytab 类型为mytext的标准表。
类型为t_mytext的带默认键的mytext的标准表。

数据文本类型为mytext。 "工作区域
数据itab类型为mytab。"内部表
数据lt_names2类型为t_mytext。

text-numb =31。
文本名称='Tim'。
APPEND文本
清除文本。

text-numb = 36.
文本名称='Jacob'。
将文本附加到itab。
清除文本。
< br> text-numb =68。
text-name ='Jesse'。
将文本追加到itab。
清除文本。

在ITAB处将其插入文本。
写:/text-numb,文字名称。
ENDLOOP。

创建数据库表??????

付费偷看设置
发送
5条回答
落灬小鱼
1楼-- · 2020-08-26 16:50

蒂莫西,你好

据我所知,ABAP中没有CREATE TABLE关键字,也没有任何简单的方法可以将ITabs转换为DB表。 数据库表是在数据字典中创建的; 通过GUI事务SE11(或SE80),或通过Eclipse File-> New-> Dictionary -Database Table。

现在,可能有服务类或函数可以实现此目的,但是我不知道有什么有意义的。 当然,DDIC本身是用ABAP编写的,您可以"博士"做一些事情,但是我强烈建议不要这样做。 原因-不要让我开始...

解决方法:根据您的特定要求,您可以探索EXPORT 关键字或类CL_ABAP_EXPIMP_UTILITIES。

希望您入门,
迈克

ZJXianG
2楼-- · 2020-08-26 16:49

共享代码时,请使用"代码"按钮进行共享,这样可以使他人获得更多的收益。

hengyuye
3楼-- · 2020-08-26 16:36

您好 Timothy Monaghan

您 在ABAP中没有用于创建数据库表的简单关键字。

但是,还有其他几种创建方法,线程下面的内容可以帮助您。

线程

注意

悻福寶寶
4楼-- · 2020-08-26 16:36

CREATE DB TABLE是本机sql,您可以通过将其放入EXEC(但不应该)表中来运行abap 可以创建但在SE11中不可用(我认为),就像您通过调用AMDP在ABAP中在HANA中创建数据库表一样。

Idk,如果有新方法可以实现,但这是最后一次 我遇到了这种要求,我使用了

DD_CREATE_TABLE(或查找fm DDIF_ *)或只是调用了BDC。

悠然的二货
5楼-- · 2020-08-26 16:47

您可以使用FM DDIF_TABL_PUT 当我们从SE11创建表

并使用DDIF_TABL_ACTIVATE激活它

一周热门 更多>