abap用NATIVE SQL操作外部数据库(Oracle)

1、在DBCO中维护一个外部数据库SAPWEB。

2、①连接数据库
    使用标准方法捕获异常、异常处理(如果连接失败,输出异常消息结束程序;如果连接成功,执行后续程序)
   TRY.
        EXEC SQL.
           CONNECT TO :p_dbname
        ENDEXEC.
   *****连接Oracle数据库时,捕获异常,如果连接失败,输出异常信息
          CATCH cx_sy_native_sql_error INTO l_obj_sqldb.
           CALL METHOD l_obj_sqldb->get_text
            RECEIVING
             result = l_error_text.
          WRITE: AT /1 l_error_text.
      ENDTRY.
     IF sy-subrc <> 0.
        WRITE: /1 'ERROR: Failed to connect APS database!', sy-datum, sy-uzeit.
      *&连不上外部数据库的,直接退出到事件END-OF-SELECTION。
    STOP.

②操作数据库
    使用标准方法捕获异常、异常处理(如果有异常,输出记录异常日志回滚数据;如果无异常,执行后续程序)
    TRY.
     EXEC SQL.
          insert into ecc_aps.int_prod_order_info
            ( prod_order_code,
              line_id )
          values(:str_afko-aufnr,
                 :str_afko-aprio)

     ENDEXEC.
   *****捕获异常
     CATCH cx_sy_native_sql_error INTO erro_object.
            erro_text = erro_object->get_text( ).
   ENDTRY.
   *****操作Oracle数据库时,异常处理
   IF NOT erro_text IS INITIAL.”如果捕获到异常,记录日志,回滚
     CLEAR erro_text.
     EXEC SQL.
       rollback
     ENDEXEC.
   ELSE. ”如果无异常,提交插入数据
      EXEC SQL.
       commit
      ENDEXEC.
   ENDIF.
③提交数据
3、断开数据库连接
   EXEC SQL.
    DISCONNECT :p_dbname
  ENDEXEC.

4、结束程序




 

你可能感兴趣的:(abap用NATIVE SQL操作外部数据库(Oracle))