CREATE OR REPLACE FUNCTION TO_SINGLE_BYTE(s VARCHAR) RETURN VARCHAR IS
DECLARE
l INT;
retval VARCHAR;
c VARCHAR;
x VARCHAR;
-- 在变量定义的同时进行赋值
-- v_float FLOAT := 12.3;
BEGIN
-- 在执行体中给变量赋值
-- 1. 用赋值符号给变量赋值
l := length(s);
retval := '';
x :=s;
while l > 0 LOOP
c := left(x,1);
if c = ' ' then
retval := retval || ' ';
elsif c >= '!' and c <= '~' then
retval := retval || chr(ascii('!') + ascii(c) - ascii('!'));
else
retval := retval || c;
end if;
x := substr(x, 2, l - 1);
l := l - 1;
end loop;
-- 2. 用 select into 语法给变量赋值
-- 把各变量的值打印至屏幕
RETURN retval;
END;