最近在搞這個弄好終於成功了


步驟
1.請BC在主機裝Oracle Client
2.設定tnsnames.ora
一般路徑應該會在
TCODE:AL11
DIR_ORAHOME=>NETWORK=>ADMIN
在上面就會看到路徑的,到時候可以去改主機對應的路徑用VI改tnsnames.ora

請注意這個檔案 前後的位置一定要正確,前面幾個空格,後面就要幾個空格
請參考 http://blog.itpub.net/519536/viewspace-682175
當初就是沒注意到空格結果一直冒出
ORA-12154: TNS:could not resolve the connect identifier specified
ORA-12504: TNS:listener was not given the SID in CONNECT_DATA

接下來
TCODE:DBCO
連線名稱不重要
DBMS選擇ORA
連結資訊要等於tnsnames.ora所設定的連線名稱

然後用
TCODE:SE38 輸入 ADBC_TEST_CONNECTION 來做測試
如果出現下面訊息代表已經成功了!

Testing a Database Connection Defined in DBCON
Connection XXX successfully opened.
Connection XXX closed

然後開始寫ABAP程式
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
error_text TYPE string.

DATA: BEGIN OF nwa,
AA(10) TYPE C,
BB(20) TYPE C,
CC(40) TYPE C,
END OF nwa.
DATA: nwa_DB LIKE nwa OCCURS 0 WITH HEADER LINE.


try.
exec sql.
connect to 'XXX'
endexec.
exec sql.
set connection 'XXX'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
error_text = exc_ref->get_text( ).
MESSAGE error_text TYPE 'I'.
ENDTRY.

*===執行SQL==== OUTTABLE是外部資料庫的TABLE名稱
exec sql performing LOOP_OUT.
SELECT AA,BB,CC INTO :nwa FROM OUTTABLE
ENDEXEC.

*==輸出
LOOP AT NWA_DB.
WRITE: /NWA_DB-AA, NWA_DB-BB, NWA_DB-CC
ENDLOOP.

*===將SELECT出來的資料塞入
FORM LOOP_OUT.
APPEND nwa TO nwa_DB.
ENDFORM.

 

成功......

 

 

arrow
arrow
    全站熱搜

    ROACH 發表在 痞客邦 留言(0) 人氣()