PL / SQL Create过程,返回两个字符串值

时间:2016-12-21 15:55:05

标签: sql plsql procedure

我是SQL新手,我正在尝试创建一个包含6个字符串的过程,例如。 '警官'然后将返回两个子字符串值,例如。 ' POL',' ICE'

这是我到目前为止所尝试的:

procedure split_string(inputString in string, substr1 in OUT string, substr2 in OUT string)
is
begin
      substr1 := SUBSTR(inputString, 1, 3);
      substr2 := SUBSTR(inputString, 4, 3);
end split_string;

然而,这不起作用,我也不确定如何调用此函数并在代码中的其他位置使用其值。

是这样的:

split_string('POLICE') ?

1 个答案:

答案 0 :(得分:3)

使用此:

CREATE OR replace procedure split_string(inputString in varchar2, 
                                         substr1  IN OUT varchar2, 
                                         substr2  IN OUT varchar2
                                         )
As

begin
      substr1 := SUBSTR(inputString, 1, 3);
      substr2 := SUBSTR(inputString, 4, 3);
END split_string;

用法:

DECLARE
   a   VARCHAR2 (10);
   b   VARCHAR2 (20);
BEGIN
   split_string ('POLICE', a, b);

   DBMS_OUTPUT.put_line (a || ',' || b);
END;

输出

SQL>     

    POL,ICE

    PL/SQL procedure successfully completed.