можно ли импортировать данные в таблицу SQL Server непосредственно в SAP ABAP itab (table)?как импортировать таблицу сервера sql в SAP ABAP itab?
Я хочу использовать этот Itab в функции SE37 .. заранее спасибо
можно ли импортировать данные в таблицу SQL Server непосредственно в SAP ABAP itab (table)?как импортировать таблицу сервера sql в SAP ABAP itab?
Я хочу использовать этот Itab в функции SE37 .. заранее спасибо
Для вашей задачи вы можете использовать функциональный модуль (SE37), или вы можете использовать модуль бассейн или отчет (SE38, SE80) , Проверьте этот отчет:
report zinsertdb.
data: oref type ref to cx_root,
p_conex type dbcon_name value 'YOUR_DB_CONNECTION_STRING', " Ask the basis for this
lv_sw type c,
errormessage type string.
data it_mydata type standard table of mara.
start-of-selection.
perform connect.
perform insert_into_db.
perform disconnect.
form connect.
try.
EXEC SQL.
CONNECT TO :p_conex
ENDEXEC.
lv_sw = 'X'.
catch cx_sy_native_sql_error into oref.
lv_sw = space.
errormessage = oref->get_text().
endtry.
endform.
form disconnect.
clear errormessage.
if lv_sw = 'X'.
try.
EXEC SQL.
COMMIT
ENDEXEC.
catch cx_sy_native_sql_error into oref.
errormessage = oref->get_text().
endtry.
endif.
endform.
form insert_into_db.
data wa_mydata like line of it_mydata.
data zcount type i.
select * from mara into corresponding fields of table it_mydata.
if sy-subrc EQ 0.
loop at it_mydata into wa_mydata.
try .
exec sql.
EXECUTE PROCEDURE sp_get_data (IN :wa_mydata-EAN11, IN :wa_mydata-MEINS, OUT :zcount)
endexec.
if zcount eq 0.
exec sql.
INSERT INTO "Your_Database".dbo.[Your_table]
(Field1, Field2, Field3, FieldN)
VALUES (:wa_mydata-matnr,
:wa_mydata-ean11,
:wa_mydata-matkl,
:wa_mydata-meins)
endexec.
lv_sw = 'X'.
endif.
catch cx_sy_native_sql_error into oref.
lv_sw = space.
errormessage = oref->get_text().
endtry.
endloop.
endif.
endform.
Надеюсь, это поможет.
Это не совсем понятно, что вы хотите сделать. Я предполагаю, что вы имеете в виду, что вы хотите прочитать всю таблицу SQL (или некоторые записи из нее) в память программы? Возможно, вы могли бы пролить немного света здесь?
Если это так, вы можете просто объявить внутреннюю таблицу, которая имеет структуру вашей таблицы SQL, содержащей данные.
DATA: table_name TYPE STANDARD/HASHED/SORTED TABLE OF name_of_sql_table.
FIELD-SYMBOLS <structure> TYPE name_of_sql_table.
SELECT * FROM name_of_sql_table INTO TABLE table_name.
И оттуда он просто читает данные из внутренней таблицы.
READ TABLE table_name ASSIGNING <structure> WITH KEY table_key_field(s) = condition(s).
Но, как Джаггер сказал быть осторожным, насколько велика ваша таблица.
Да. Нет. Возможно. Может быть, может и нет. Не могли бы вы дать нам более четкое представление о том, что вы хотите сделать, и о том, что вы уже пробовали и исследовали? – vwegert
'SELECT * FROM INTO TABLE '? Но тогда вы должны быть уверены, что эта таблица базы данных очень маленькая и не содержит слишком много записей. –
Jagger