Native SQL

很少会用native sql,恰好项目里用到了,做个简单记录:

Tcode:DBCO
Native <wbr>SQL

上面配置只是看DB连接,至于配置肯定不会让ABAP插手。

下面代码只是为了解 书写的格式

实例代码:
  DATA: con TYPE string VALUE 'JZYF'.                "连接名称
  DATA: exc_ref TYPE REF TO cx_sy_native_sql_error.  "异常
  DATA: sql_error TYPE bapiret2-message.             

  "连接数据中心数据库
  EXEC SQL.
    CONNECT TO : con                                 "获取连接           
  ENDEXEC.

IF sy-subrc = 0.

      TRY.
          EXEC SQL.
            insert into derp_ztmmjy_fw_orstre
           (dept_code, zfield1, zfield2, zfield3, zfield4, 
            zfield5, zfield6, zfield7, zfield8, zfield9, zfield10)
           values
             ( '11',                         "如果是取变量值,则前面加冒号,如果直接赋值,不要冒号
              :l_wa_alv-ZFIELD1     ,        "预留字段1
              :L_WA_ALV-ZFIELD2     ,        "预留字段2
              :L_WA_ALV-ZFIELD3     ,        "预留字段3
              :L_WA_ALV-ZFIELD4     ,        "预留字段4
              :L_WA_ALV-ZFIELD5     ,        "预留字段5
              :L_WA_ALV-ZFIELD6     ,        "预留字段6
              :L_WA_ALV-ZFIELD7     ,        "预留字段7
              :L_WA_ALV-ZFIELD8     ,        "预留字段8
              :L_WA_ALV-ZFIELD9     ,        "预留字段9
              :L_WA_ALV-ZFIELD10)

          ENDEXEC.

          EXEC SQL.
            commit
          ENDEXEC.

        CATCH cx_sy_native_sql_error INTO exc_ref.
          sql_error = exc_ref->get_text( ).

          "异常处理
      ENDTRY.


    EXEC SQL.
      DISCONNECT :CON                              "关闭连接
    ENDEXEC.
  ENDIF.


特别注意的是,SAP里的时间日期格式,在ERP外数据库设计时,使用字符类型



posted @ 2014-01-22 09:25  胡来  阅读(253)  评论(0编辑  收藏  举报