点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我需要在Abap程序中使用EXEC SQL创建数据库表。
我的代码是:
尝试。
EXEC SQL。
创建表zt_hello(mandt char(4)NOT NULL,
kunnr char(10)NOT NULL,
主键(mandt,kunnr))
ENDEXEC。
捕获cx_sy_native_sql_error INTO exc_ref。
error_text = exc_ref-> get_text()。
ENDTRY。
如果sy-subrc = 0。
提交工作。
ENDIF。
但是它仍然无法正常工作。
能帮我吗?
谢谢。
编辑:widad soubhi于2010年7月14日下午5:26
当然,不建议您使用本机SQL(如果更改数据库,则可能需要重写和测试所有本机SQL语句)。 因此,最好使用DD_TABLE_PUT函数模块。
也就是说,要回答您的问题,您可以通过SE11创建一个自定义表,然后显示激活日志以查看所使用的本机SQL语句。 ,然后您知道需要使用什么。 我认为您的主要错误是使用" CHAR"而不是" VARCHAR"或" VARCHAR2",而且我不确定在主键之前是否可以使用右括号...
您可以使用t_code DB02查看由本机sql创建的表。
请参考此代码
REPORT z_struct_create。
数据:my_row(500)TYPE c,
my_file_1就像my_row的第0行带有标题行。
数据:dd02v类型dd02v。
数据:my_file_tab1喜欢dd03p出现了0行且带有标题行。
带有框架标题文本的块blk的选择屏幕开始
无间隔。
参数:
名称类型ddobjname,
testo类型text40,
file_1类似于rlgrap文件名。
选择屏幕跳过。
块blk的选择屏幕结束。
在文件_1的值请求的选择屏幕上。
使用file_1执行PERFORM文件选择。
初始化。
text = text-001。
开始选择。
IF file_1是INITIAL。
消息ID" Z0017_BDI",类型为" I",数字001。
退出。
ENDIF。
呼叫功能'WS_UPLOAD'
导出
文件名= file_1
文件类型='ASC'
表
data_tab = my_file_1。
IF sy-subrc0。
消息ID'Z0017_BDI',类型'I'002。
退出。
ENDIF。
在my_file_1处循环播放。
IF sy-tabix> 1.
清除my_file_tab1。
SPLIT my_file_1 AT';' INTO
my_file_tab1-字段名
my_file_tab1-数据类型
my_file_tab1-leng
my_file_tab1-decimals
my_file_tab1- ddtext
。
my_file_tab1-inttype ='C'。
my_file_tab1-INTLEN = my_file_tab1-leng。
my_file_tab1-tabname =名称。
my_file_tab1-position = sy-tabix-1。
my_file_tab1-ddlanguage = sy-langu。
my_file_tab1-OUTPUTLEN = my_file_tab1-leng。
APPEND my_file_tab1。
ENDIF。
ENDLOOP。
dd02v-tabname =名称。
dd02v-ddlanguage = sy-langu。
dd02v-tabclass ='INTTAB'。
dd02v-DDTEXT = testo。
dd02v-MASTERLANG = sy-langu。
如果不是my_file_tab1 []是INITIAL。
呼叫功能'DDIF_TABL_PUT'
导出
名称=名称
dd02v_wa = dd02v
表 p>
dd03p_tab = my_file_tab1
例外情况
tabl_not_found = 1
name_inconsistent = 2
tabl_inconsistent = 3
put_failure = 4
put_refused = 5
OTHERS = 6
。
IF sy-subrc0。
消息ID sy-msgid类型sy-msgty编号sy-msgno
有sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
ENDIF。
ELSE。
消息ID" Z0017_BDI",类型为" I",数字003。
退出。
ENDIF。
*&----
*&表单文件选择
*&----
-> P_FILE_1文本
-
使用p_file进行文件选择。
呼叫功能'WS_FILENAME_GET'
导出
def_filename =''
def_path ='c:\'
< p> mask =',。,..'mode ='0'
title ='Selezione file'
IMPORTING
文件名= p_file
RC = RCODE
例外情况
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS =5。
ENDFORM。 " file_selection
文件模板:
字段名;数据类型;长度; Dec.; Descr。
FIELD1; CHAR; 000020; 000000;我的字段1
FIELD2; CHAR; 000008; 000000;我的字段2
FIELD3; CHAR; 000007; 000000;我的字段3
FIELD4; CHAR; 000006; 000000; 我的字段4
您无需为此明确编码。为此提供了Std。ADBC(ABAP数据库连接)类。
检查程序ADBC_DEMO
。您可以使用t_code DB02查看由本地sql创建的表。
一周热门 更多>