教你如何通过Oracle游标直接操作Oracle系统表

2012-11-12
  在ABAP编程中,有时候需要利用Native SQL操作数据库表(自定义和非业务数据的表,业务数据表我的建议还是应该通过SAP提供的类、函数,BAPI等技术操作)。下面的例子是通过游标操作Oracle的系统表的代码,供大家参考。
  *--------------------------------------------*
  * Read information about partitions of a table
  *-------------------------------------------*
  FORM get_partition_info
  USING
  i_tablnm TYPE rsd_tablnm
  CHANGING
  e_ts_part_info TYPE rsdu_ts_part_info.
  DATA:
  l_s_part_info TYPE rsdu_s_part_info.
  * this works only for Oracle
  CHECK sy-dbsys = 'ORACLE'.
  EXEC SQL.
  open csr for
  select partition_name, high_value
  from user_tab_partitions
  where table_name = :i_tablnm
  ENDEXEC.
  DO.
  EXEC SQL.
  fetch next csr into :l_s_part_info-partition_name,
  :l_s_part_info-high_value
  ENDEXEC.
  IF sy-subrc <> 0.
  EXIT.
  ENDIF.
  * Special treatment of upper limit (highvalue) in Oracle
  IF l_s_part_info-high_value EQ 'MAXVALUE'.
  l_s_part_info-high_value = rsdu_c_max_value.
  ENDIF.
  INSERT l_s_part_info INTO TABLE e_ts_part_info.
  ENDDO.
  EXEC SQL.
  close csr
  ENDEXEC.
  ENDFORM. " GET_PARTITION_INFO
  更多优质资料尽在考试大论坛 考试大在线题库 oracle认证更多详细资料</A
分享到:
0
相关阅读
友情链接
© 2018 我考网 http://www.woexam.com 中国互联网举报中心 湘ICP备18023104号 京公网安备 11010802020116号
违法和不良信息举报:9447029@qq.com