- 论坛徽章:
- 0
|
我自己搞了一个纯SQL版的,不过我更想要C版.
CREATE FUNCTION TrimChar (
v_instr VARCHAR(4000)
)
RETURNS VARCHAR(4000)
LANGUAGE SQL
------------------------------------------------------------------------
-- FUNCTION: SUPERTRIM
-- Description:
--
------------------------------------------------------------------------
BEGIN ATOMIC
DECLARE v_len INTEGER; -- Length of string
DECLARE v_lcode INTEGER; -- Ascii code of the left char
DECLARE v_rcode INTEGER; -- Ascii code of the right char
DECLARE v_lflag INTEGER; -- End flag for left hand
DECLARE v_rflag INTEGER; -- End flag for right hand
DECLARE v_outstr VARCHAR(4000); -- Output string
IF v_instr is NULL THEN
RETURN NULL;
END IF;
SET v_outstr = v_instr;
SET v_len = Length(v_outstr);
SET v_lflag = 0;
SET v_rflag = 0;
WHILE v_lflag*v_rflag = 0 DO
SET v_lcode = Ascii(Left(v_outstr,1));
SET v_rcode = Ascii(Right(v_outstr,1));
IF (v_lcode between 0 and 32) THEN
SET v_outstr = Right(v_outstr,v_len-1);
SET v_len = Length(v_outstr);
ELSE
SET v_lflag = 1;
END IF;
IF (v_rcode between 0 and 32) THEN
SET v_outstr = Left(v_outstr,v_len-1);
SET v_len = Length(v_outstr);
ELSE
SET v_rflag = 1;
END IF;
END WHILE;
RETURN v_outstr;
END
; |
|