2016-12-21 10 views
1

私はSQLを初めて使用しており、6文字の文字列を取るプロシージャを作成しようとしています。 'POLICE'そして2つの部分文字列の値を返します。 「POL」、「ICE」PL/SQL 2つの文字列値を返すプロシージャを作成します

これは私がこれまでにしようとしているものです:

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

substr1とsubstr2のプレースホルダーも渡さなければなりません。 'split_string( 'POLICE'、substr1、substr2);'を使用してください。 substr1とsubstr2を使うことができます。これは、プロシージャー呼び出しのために更新された値を持つためです。もちろん、下記のようにVARCHAR2を使用してください。 – Roshni

答えて

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. 
+0

これは大丈夫です。他の場所でこの手順をどのように使うのですか? ため オープンcRsltsを開始 ある – Stackoverflow

+0

プロシージャ(文字列でinputStringから、cRsltsアウトResultsCursor)get_date テーブルから明確なCOLUMN_NAME を選択するn個(SUBSTR(中 n.column1:私は、それは次のようになり、別のプロシージャ内でそれを呼びたいですccyPair、1,3)、SUBSTR(ccyPair、4,3)) end get_date; – Stackoverflow

+0

大丈夫です – Stackoverflow

関連する問題