1

Teradata ストアド プロシージャ言語 (SPL) を使用して文字列を反転するにはどうすればよいですか? 要件は、SQL サーバーの replace() 関数を複製することでした。これは Teradata で対応する UDF を記述することで実現できますが、プロシージャを使用して同じことを実現したいと考えています。

この手順を使用して、reverse() を持つ実際のステートメントで変数を使用する前に変数を初期化できます。

4

1 に答える 1

0

これは、次のストアド プロシージャを使用して実現できます。

その背後にある主なロジックは、各反復 (文字列の長さに等しい反復数) で、最後のアルファベットを変数に連結することです。

REPLACE PROCEDURE database.REVERSE_STRING(INOUT STRING VARCHAR(20))
BEGIN
--Declare Variables
DECLARE STRING_LOCAL  VARCHAR(20); -- Local Copy
DECLARE STRING_LEN VARCHAR(20); -- String Length

--Initialize Variables
SET STRING_LEN = CHARACTER_LENGTH(STRING); -- Find Out the length of string
SET STRING_LOCAL = ''; -- Initialize local copy

--Main Loop
WHILE(STRING_LEN > 0)
DO
    SET STRING_LOCAL = STRING_LOCAL || SUBSTR(STRING,STRING_LEN,1); -- In each Iteration copy last alphabet and con cat with STRING_LOCAL
    SET STRING_LEN = STRING_LEN - 1; -- Decrease Iterator Value
END WHILE;

SET STRING = TRIM(STRING_LOCAL); -- Return reversed string

END;
于 2012-08-13T08:51:42.017 に答える