会计考友 发表于 2012-8-4 14:06:19

oracle认证应用技术学习资料汇总10

教你如何通过Oracle游标直接操作Oracle系统表
 在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-subrc0.
  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
页: [1]
查看完整版本: oracle认证应用技术学习资料汇总10