-2

这是代码

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; 

但我不知道如何做这个大功能。

4

1 回答 1

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;    

希望您可以将其作为模板并进行调整以使您的程序运行。

于 2013-09-13T16:31:00.057 回答