我是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') ?
答案 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.