Char tablo alanından sadece sayısal verilerin SQL ile çekilmesi

Harfler bir char değişkenine aktarılır. Her harf için range`e CP koşulu eklenir. ( * asteriks ile ) .

Sorguya "not in" ile range verilir.

 

FORM F_NEW_NUMBER CHANGING chn_new TYPE Z_E_FIRMA.
  DATALV_MAX_FR_ID TYPE Z_E_FIRMA.
  rangeslr_id for Z_FIRMA-Fr_ID.
  datalv_charlist type char100 VALUE `ABCDEFGHIJKLMNOPRSTQUVXWYZabcdefghijklmnoprstquvxwyz`.

  datalv_compare type char3 .

  datalv_size type int4.
  datalv_xndx type int4.
  lv_size  strlenlv_charlist ).
  lv_xndx 0.
  do lv_size times.
     CONCATENATE `*` lv_charlist+lv_xndx(1`*` INTO lv_compare.
     lr_id `ICP`lr_id-lOW lv_compareappend lr_id.
     lv_xndx lv_xndx + 1.
  ENDDO.

  SELECT SINGLE MAXFr_ID )
      into LV_MAX_FR_ID
      FROM Z_FIRMA
    where FR_ID NOT IN lr_id.
 
      chn_new   LV_MAX_FR_ID + 1.

ENDFORM.