传递分号分隔的数据以运行



我想修改下面的过程以 1;2;3 的形式发送数据。在下面的过程中,我发送像 1 这样的数据,然后我检查数据是否是一个有效的数字,如果是,那么我得到对某个表的查询并获取数据计数。我无法修改发送分号分隔数据并检查数据是否为数字的过程,这里的p_in_field_value应该像 1;2;3 应该传递给下面的函数。

FUNCTION p_get_option_value(p_in_field_value IN VARCHAR2) RETURN VARCHAR2 IS
    v_is_number boolean;
    v_count number;
    v_option_val VARCHAR2(300);
   begin
     v_is_number := pkg_trial.f_check_value_numeric(p_in_field_value);
       IF (v_is_number = TRUE) THEN
                                  select count(id) into v_count from t_field_option where field_option_id=p_in_field_value;
          if(v_count >=1) THEN
          v_option_val:=  pkg_form_common.f_option_values(p_in_field_value);
          return v_option_val;  
          else
            return p_in_field_value;
                    END IF;
      ELSE
       return p_in_field_value;
       END IF; 
FUNCTION f_check_value_numeric(p_in_field_value IN VARCHAR2) RETURN BOOLEAN IS
    v_is_number number;
   begin
     v_is_number := to_number(p_in_field_value);
      return TRUE;
    exception
       when others then
       return FALSE;
   END f_check_value_numeric;

请让我知道如何执行此操作?

不确定应该如何计算v_option_val的值,但您可以按如下方式拆分分号分隔数据:

FUNCTION p_get_option_value(p_in_field_value IN VARCHAR2) RETURN VARCHAR2 IS
    v_is_number boolean;
    v_count number;
    v_option_val VARCHAR2(300);
    v_pos     NUMBER;
    v_in_field_valid  VARCHAR2(4000);
    v_val     VARCHAR2(4000);
BEGIN
    v_in_field_valid  := p_in_field_value;
    WHILE v_in_field_valid IS NOT NULL 
    LOOP 
      v_pos :=  instr(v_in_field_valid, ';');
      IF v_pos  = 0 THEN
        v_val := v_in_field_valid;
        v_insurance_value := NULL;
      ELSE 
        v_val := SUBSTR(v_in_field_valid, 1, v_pos -1);
        v_in_field_valid := substr(v_str, v_pos + 1);
      END IF;
      v_is_number := pkg_trial.f_check_value_numeric(v_val);
       IF (v_is_number = TRUE) THEN
                                  select count(id) into v_count from t_field_option where field_option_id=v_val;
          if(v_count >=1) THEN
          v_option_val:=  v_option_val || pkg_form_common.f_option_values(v_val);
     END LOOP
    return p_in_field_value;
   END;

相关内容

  • 没有找到相关文章

最新更新