这是代码
vResult VARCHAR2(200);
BEGIN
fvData:=TRIM(fvData);
IF SUBSTR(fvData,LENGTH(fvData)-1,1)<>'*' THEN
fvData:=fvData||'**';
END IF;
vResult:=SUBSTR(fvData,1,InStr(fvData,'^^') - 1);
fvData:=SUBSTR(fvData,InStr(fvData,'^^') + 3);
RETURN vResult;
END StringExtract;
/
我尝试使用fvdata=365
以不同的方式输入,但没有任何反应,我尝试输入小型SQL
select InStr(367,'^^^^') - 1
from dual;
但我无法弄清楚如何做这个大功能。
答案 0 :(得分:0)
为了帮助您完成此工作,请查看以下代码。我遗漏了你的功能的细节,所以我们不会让事情复杂化,但你应该能够重新插入它。
DECLARE
inputValue VARCHAR2(200) := :inputValue; -- << this bind variable allows you to provide different input each you run the code
FUNCTION stringExtract(fvData varchar2) RETURN varchar2
IS
vResult VARCHAR2(200);
BEGIN
vResult := TRIM(fvData);
RETURN vResult;
END stringExtract;
BEGIN
DBMS_OUTPUT.PUT_LINE(LENGTH(inputValue));
DBMS_OUTPUT.PUT_LINE(LENGTH(stringExtract(inputValue)));
END;
希望您可以将其作为模板并适应您的程序。