Hi 大家好
今天想分享如何用ABAP連結到外部DB,
之前有介紹過外部想要獲取SAP內的資料,
那SAP想要獲得外部資料呢?
除了外部主動Insert資料到SAP的DB以外
SAP也可以連接外部DB來取得資料
Perform一個子程式,
並傳入DB NAME:TEST_DB
Schema NAME:DBO
perform connect_ext_db using 'TEST_DB' 'DBO'.
data: lo_cx_sql type ref to cx_sql_exception.
宣告變量 lo_cx_sql,它的類型是 cx_sql_exception,用來捕捉在資料庫連接過程中可能出現的 SQL 相關異常。
clear: %g_er_msg.
%g_er_msg: 這是一個全局變數,用來存儲與資料庫連接相關的錯誤訊息。代碼開始時清空,以確保不會有舊的錯誤訊息。
if f_dbcon_name is not initial.
%g_dbcon_name = f_dbcon_name."DB connect Name
endif.
if f_schema_name is not initial.
%g_schema_name = f_schema_name."DB schema Name
endif.
如果f_dbcon_name不是空白,把DB名稱賦值給 %g_dbcon_name
如果f_schema_name 不是空白,把schema名稱賦值給%g_schema_name
TRY...CATCH 是一種用來處理異常(例外狀況)的語法結構。這種結構允許你捕捉程序中可能發生的錯誤或異常狀況,並在發生異常時進行處理。
try.
%o_conn = cl_sql_connection=>get_connection( %g_dbcon_name ).
catch cx_sql_exception into lo_cx_sql.
%g_er_msg = lo_cx_sql->get_text( ).
if %g_er_msg is initial.
concatenate 'Connect to DB:' %g_dbcon_name 'Error'
into %g_er_msg separated by space.
endif.
endtry.
如果連接失敗,將捕捉 cx_sql_exception 異常,並使用 lo_cx_sql->get_text() 來獲取錯誤信息。
如果沒有找到具體的錯誤信息(即 %g_er_msg 是初始值),則會產生一條錯誤信息:'Connect to DB:' 'Error'。
以上就是今天的分享