Oracle 內建 REVERSE('1234') → '4321'(參數/回傳皆 CHAR);SQL Server 內建 REVERSE 接受 VARCHAR/NVARCHAR。DB2 無內建 REVERSE,本文提供相容實作。
REVERSE('1234 ') 回傳 ' 4321',長度保留 8 → 回傳 CHAR 型別。CREATE OR REPLACE FUNCTION REVERSE (p1 VARCHAR(200))
RETURNS VARCHAR(200)
SPECIFIC "REVERSE"
LANGUAGE SQL
DETERMINISTIC
NO EXTERNAL ACTION
READS SQL DATA
BEGIN
DECLARE v_str VARCHAR(200) DEFAULT '';
DECLARE v_index INTEGER;
SET v_index = LENGTH(p1);
WHILE (v_index >= 1) DO
SET v_str = v_str || SUBSTR(p1, v_index, 1);
SET v_index = v_index - 1;
END WHILE;
RETURN v_str;
END@
VALUES REVERSE('123456'); -- 654321
VALUES REVERSE(1234); -- 4321(隱含型別轉換)
SYSTOOLS 或自訂 UTIL),授予 PUBLIC EXECUTE。REVERSE_CLOB 等變體。