У меня есть строка, которая может иметь разные параметры и разное количество параметров.Я пытаюсь получить имя параметра и значение параметра.Примером может быть:
FIRST_PARAM=1^SECOND_PARAM=2^THIRD_PARAM=3^FOURTH_PARAM=4^
Я могу получить значение параметра через существующий пакет, но это имя, с которым у меня возникают трудности.То, что я сделал до сих пор:
param_count_ := length(params_) - length(replace(params_,'^',null));
DBMS_OUTPUT.PUT_LINE('Param Count: '||param_count_);
WHILE(index_ <= param_count_)
LOOP
param_value_ := client_sys.Get_Key_Reference_Value(params_,index_);
IF(index_ = 1) THEN
param_name_ := NVL(SUBSTR(params_, 0, INSTR(params_, '=')-1), params_);
ELSE
param_name_ := SUBSTR(params_,
INSTR(params_, '^',1,index_) + 1,
INSTR(params_, '=',1,index_+1) - INSTR(params_, '^',1,index_) - 1);
END IF;
DBMS_OUTPUT.PUT_LINE('Reference Name: '||param_name_);
DBMS_OUTPUT.PUT_LINE('Reference Value: '||param_value_);
index_ := index_+1;
END LOOP;
Это приводит к следующему выводу:
Param Count: 4
Reference Name: FIRST_PARAM
Reference Value: 1
Reference Name: THIRD_PARAM
Reference Value: 2
Reference Name: FOURTH_PARAM
Reference Value: 3
Reference Name:
Reference Value: 4
Кажется, что он не к месту.Как я могу это исправить, пожалуйста?