Teradata ストアド プロシージャ言語 (SPL) を使用して文字列を反転するにはどうすればよいですか? 要件は、SQL サーバーの replace() 関数を複製することでした。これは Teradata で対応する UDF を記述することで実現できますが、プロシージャを使用して同じことを実現したいと考えています。
この手順を使用して、reverse() を持つ実際のステートメントで変数を使用する前に変数を初期化できます。
Teradata ストアド プロシージャ言語 (SPL) を使用して文字列を反転するにはどうすればよいですか? 要件は、SQL サーバーの replace() 関数を複製することでした。これは Teradata で対応する UDF を記述することで実現できますが、プロシージャを使用して同じことを実現したいと考えています。
この手順を使用して、reverse() を持つ実際のステートメントで変数を使用する前に変数を初期化できます。
これは、次のストアド プロシージャを使用して実現できます。
その背後にある主なロジックは、各反復 (文字列の長さに等しい反復数) で、最後のアルファベットを変数に連結することです。
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;