在db2中,为什么是';包含SQL';在处理从半宽字符到全宽字符的转换时扮演特定角色

在db2中,为什么是';包含SQL';在处理从半宽字符到全宽字符的转换时扮演特定角色,db2,Db2,我们使用REPLACE()将作为参数传递的字符串从半宽字符转换为全宽字符(用REPLACE()替换所有半宽字符) i) 。通过声明“CONTAINS SQL”并创建一个函数,我们可以使用SQL从存储过程调用函数,例如更新表 (ii)。通过不声明“包含SQL”,更新表不起作用 未处理该语句,因为函数“FNC_NAME2”解析为无效的特定函数“FNC_NAME2” 在使用它的上下文中。。。SQLCODE=-390,SQLSTATE=42887,DRIVER=4.24.92 a) FNC_NAME函数

我们使用REPLACE()将作为参数传递的字符串从半宽字符转换为全宽字符(用REPLACE()替换所有半宽字符)

i) 。通过声明“CONTAINS SQL”并创建一个函数,我们可以使用SQL从存储过程调用函数,例如更新表 (ii)。通过不声明“包含SQL”,更新表不起作用

未处理该语句,因为函数“FNC_NAME2”解析为无效的特定函数“FNC_NAME2”

在使用它的上下文中。。。SQLCODE=-390,SQLSTATE=42887,DRIVER=4.24.92 a) FNC_NAME函数已声明“CONTAINS_SQL” b) FNC_NAME2函数未声明“包含”SQL

具有“CONATINS SQL”的函数

CREATE OR REPLACE FUNCTION FNC_NAME(
IN I_ORG_STR   VARCHAR(5000)
)
RETURNS VARCHAR(20000)
SPECIFIC FNC_NAME
LANGUAGE SQL
CONTAINS SQL

BEGIN
DECLARE V_D_CNT  INTEGER;
DECLARE V_HD_CNT INTEGER;
DECLARE V_RESULT VARCHAR(20000) DEFAULT NULL;

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
    RETURN V_RESULT;    
END;


IF  I_ORG_STR IS NULL OR I_ORG_STR = ''  THEN
    RETURN V_RESULT;
END IF;

SET V_RESULT = I_ORG_STR;

SET V_RESULT = REPLACE( V_RESULT, ' ', '' );     
SET V_RESULT = REPLACE( V_RESULT, ' ', '' );      

SET V_RESULT = REPLACE( V_RESULT, '゚', '゜' );    
SET V_RESULT = REPLACE( V_RESULT, '゙', '゛' );    

--カナ、ひら小文字
SET V_RESULT = REPLACE( V_RESULT, 'ア', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'イ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ウ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'エ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'オ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'カ', 'カ' );
SET V_RESULT = REPLACE( V_RESULT, 'キ', 'キ' );
SET V_RESULT = REPLACE( V_RESULT, 'ク', 'ク' );
SET V_RESULT = REPLACE( V_RESULT, 'ケ', 'ケ' );
SET V_RESULT = REPLACE( V_RESULT, 'コ', 'コ' );
SET V_RESULT = REPLACE( V_RESULT, 'サ', 'サ' );
SET V_RESULT = REPLACE( V_RESULT, 'シ', 'シ' );
SET V_RESULT = REPLACE( V_RESULT, 'ス', 'ス' );
SET V_RESULT = REPLACE( V_RESULT, 'セ', 'セ' );
SET V_RESULT = REPLACE( V_RESULT, 'ソ', 'ソ' );
SET V_RESULT = REPLACE( V_RESULT, 'タ', 'タ' );
SET V_RESULT = REPLACE( V_RESULT, 'チ', 'チ' );
SET V_RESULT = REPLACE( V_RESULT, 'ツ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'テ', 'テ' );
SET V_RESULT = REPLACE( V_RESULT, 'ト', 'ト' );
SET V_RESULT = REPLACE( V_RESULT, 'ナ', 'ナ' );
SET V_RESULT = REPLACE( V_RESULT, 'ニ', 'ニ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヌ', 'ヌ' );
SET V_RESULT = REPLACE( V_RESULT, 'ネ', 'ネ' );
SET V_RESULT = REPLACE( V_RESULT, 'ノ', 'ノ' );
SET V_RESULT = REPLACE( V_RESULT, 'ハ', 'ハ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヒ', 'ヒ' );
SET V_RESULT = REPLACE( V_RESULT, 'フ', 'フ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヘ', 'ヘ' );
SET V_RESULT = REPLACE( V_RESULT, 'ホ', 'ホ' );
SET V_RESULT = REPLACE( V_RESULT, 'マ', 'マ' );
SET V_RESULT = REPLACE( V_RESULT, 'ミ', 'ミ' );
SET V_RESULT = REPLACE( V_RESULT, 'ム', 'ム' );
SET V_RESULT = REPLACE( V_RESULT, 'メ', 'メ' );
SET V_RESULT = REPLACE( V_RESULT, 'モ', 'モ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヤ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ユ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヨ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ラ', 'ラ' );
SET V_RESULT = REPLACE( V_RESULT, 'リ', 'リ' );
SET V_RESULT = REPLACE( V_RESULT, 'ル', 'ル' );
SET V_RESULT = REPLACE( V_RESULT, 'レ', 'レ' );
SET V_RESULT = REPLACE( V_RESULT, 'ロ', 'ロ' );
SET V_RESULT = REPLACE( V_RESULT, 'ワ', 'ワ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヲ', 'ヲ' );
SET V_RESULT = REPLACE( V_RESULT, 'ン', 'ン' );

SET V_RESULT = REPLACE( V_RESULT, 'ァ', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'ィ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゥ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'ェ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'ォ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'ャ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ュ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ョ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ッ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヮ', 'ワ' );

SET V_RESULT = REPLACE( V_RESULT, 'ァ', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'ィ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゥ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'ェ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'ォ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'ャ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ュ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ョ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ッ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'ー', 'ー' );

SET V_RESULT = REPLACE( V_RESULT, 'ぁ', 'あ' );
SET V_RESULT = REPLACE( V_RESULT, 'ぃ', 'い' );
SET V_RESULT = REPLACE( V_RESULT, 'ぅ', 'う' );
SET V_RESULT = REPLACE( V_RESULT, 'ぇ', 'え' );
SET V_RESULT = REPLACE( V_RESULT, 'ぉ', 'お' );
SET V_RESULT = REPLACE( V_RESULT, 'ゃ', 'や' );
SET V_RESULT = REPLACE( V_RESULT, 'ゅ', 'ゆ' );
SET V_RESULT = REPLACE( V_RESULT, 'ょ', 'よ' );
SET V_RESULT = REPLACE( V_RESULT, 'っ', 'つ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゎ', 'わ' );

SET V_D_CNT  = POSSTR( V_RESULT, '゛' );
SET V_HD_CNT = POSSTR( V_RESULT, '゜' );

IF V_D_CNT > 0 OR V_HD_CNT > 0 THEN
    SET V_RESULT = REPLACE( V_RESULT, 'カ゛', 'ガ' );
    SET V_RESULT = REPLACE( V_RESULT, 'キ゛', 'ギ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ク゛', 'グ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ケ゛', 'ゲ' );
    SET V_RESULT = REPLACE( V_RESULT, 'コ゛', 'ゴ' );

    SET V_RESULT = REPLACE( V_RESULT, 'サ゛', 'ザ' );
    SET V_RESULT = REPLACE( V_RESULT, 'シ゛', 'ジ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ス゛', 'ズ' );
    SET V_RESULT = REPLACE( V_RESULT, 'セ゛', 'ゼ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ソ゛', 'ゾ' );

    SET V_RESULT = REPLACE( V_RESULT, 'タ゛', 'ダ' );
    SET V_RESULT = REPLACE( V_RESULT, 'チ゛', 'ヂ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ツ゛', 'ヅ' );
    SET V_RESULT = REPLACE( V_RESULT, 'テ゛', 'デ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ト゛', 'ド' );

    SET V_RESULT = REPLACE( V_RESULT, 'ハ゛', 'バ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヒ゛', 'ビ' );
    SET V_RESULT = REPLACE( V_RESULT, 'フ゛', 'ブ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヘ゛', 'ベ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ホ゛', 'ボ' );

    SET V_RESULT = REPLACE( V_RESULT, 'ハ゜', 'パ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヒ゜', 'ピ' );
    SET V_RESULT = REPLACE( V_RESULT, 'フ゜', 'プ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヘ゜', 'ペ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ホ゜', 'ポ' );

    SET V_RESULT = REPLACE( V_RESULT, 'ウ゛', 'ヴ' );

    SET V_RESULT = REPLACE( V_RESULT, 'か゛', 'が' );
    SET V_RESULT = REPLACE( V_RESULT, 'き゛', 'ぎ' );
    SET V_RESULT = REPLACE( V_RESULT, 'く゛', 'ぐ' );
    SET V_RESULT = REPLACE( V_RESULT, 'け゛', 'げ' );
    SET V_RESULT = REPLACE( V_RESULT, 'こ゛', 'ご' );

    SET V_RESULT = REPLACE( V_RESULT, 'さ゛', 'ざ' );
    SET V_RESULT = REPLACE( V_RESULT, 'し゛', 'じ' );
    SET V_RESULT = REPLACE( V_RESULT, 'す゛', 'ず' );
    SET V_RESULT = REPLACE( V_RESULT, 'せ゛', 'ぜ' );
    SET V_RESULT = REPLACE( V_RESULT, 'そ゛', 'ぞ' );

    SET V_RESULT = REPLACE( V_RESULT, 'た゛', 'だ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ち゛', 'ぢ' );
    SET V_RESULT = REPLACE( V_RESULT, 'つ゛', 'づ' );
    SET V_RESULT = REPLACE( V_RESULT, 'て゛', 'で' );
    SET V_RESULT = REPLACE( V_RESULT, 'と゛', 'ど' );

    SET V_RESULT = REPLACE( V_RESULT, 'は゛', 'ば' );
    SET V_RESULT = REPLACE( V_RESULT, 'ひ゛', 'び' );
    SET V_RESULT = REPLACE( V_RESULT, 'ふ゛', 'ぶ' );
    SET V_RESULT = REPLACE( V_RESULT, 'へ゛', 'べ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ほ゛', 'ぼ' );

    SET V_RESULT = REPLACE( V_RESULT, 'は゜', 'ぱ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ひ゜', 'ぴ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ふ゜', 'ぷ' );
    SET V_RESULT = REPLACE( V_RESULT, 'へ゜', 'ぺ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ほ゜', 'ぽ' );
END IF;


-- 英数
SET V_RESULT = TRANSLATE( V_RESULT );  

SET V_RESULT = REPLACE( V_RESULT, 'A', 'A' );
SET V_RESULT = REPLACE( V_RESULT, 'B', 'B' );
SET V_RESULT = REPLACE( V_RESULT, 'C', 'C' );
SET V_RESULT = REPLACE( V_RESULT, 'D', 'D' );
SET V_RESULT = REPLACE( V_RESULT, 'E', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 'F', 'F' );
SET V_RESULT = REPLACE( V_RESULT, 'G', 'G' );
SET V_RESULT = REPLACE( V_RESULT, 'H', 'H' );
SET V_RESULT = REPLACE( V_RESULT, 'I', 'I' );
SET V_RESULT = REPLACE( V_RESULT, 'J', 'J' );
SET V_RESULT = REPLACE( V_RESULT, 'K', 'K' );
SET V_RESULT = REPLACE( V_RESULT, 'L', 'L' );
SET V_RESULT = REPLACE( V_RESULT, 'M', 'M' );
SET V_RESULT = REPLACE( V_RESULT, 'N', 'N' );
SET V_RESULT = REPLACE( V_RESULT, 'O', 'O' );
SET V_RESULT = REPLACE( V_RESULT, 'P', 'P' );
SET V_RESULT = REPLACE( V_RESULT, 'Q', 'Q' );
SET V_RESULT = REPLACE( V_RESULT, 'R', 'R' );
SET V_RESULT = REPLACE( V_RESULT, 'S', 'S' );
SET V_RESULT = REPLACE( V_RESULT, 'T', 'T' );
SET V_RESULT = REPLACE( V_RESULT, 'U', 'U' );
SET V_RESULT = REPLACE( V_RESULT, 'V', 'V' );
SET V_RESULT = REPLACE( V_RESULT, 'W', 'W' );
SET V_RESULT = REPLACE( V_RESULT, 'X', 'X' );
SET V_RESULT = REPLACE( V_RESULT, 'Y', 'Y' );
SET V_RESULT = REPLACE( V_RESULT, 'Z', 'Z' );

SET V_RESULT = REPLACE( V_RESULT, 'a', 'A' );
SET V_RESULT = REPLACE( V_RESULT, 'b', 'B' );
SET V_RESULT = REPLACE( V_RESULT, 'c', 'C' );
SET V_RESULT = REPLACE( V_RESULT, 'd', 'D' );
SET V_RESULT = REPLACE( V_RESULT, 'e', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 'f', 'F' );
SET V_RESULT = REPLACE( V_RESULT, 'g', 'G' );
SET V_RESULT = REPLACE( V_RESULT, 'h', 'H' );
SET V_RESULT = REPLACE( V_RESULT, 'i', 'I' );
SET V_RESULT = REPLACE( V_RESULT, 'j', 'J' );
SET V_RESULT = REPLACE( V_RESULT, 'k', 'K' );
SET V_RESULT = REPLACE( V_RESULT, 'l', 'L' );
SET V_RESULT = REPLACE( V_RESULT, 'm', 'M' );
SET V_RESULT = REPLACE( V_RESULT, 'n', 'N' );
SET V_RESULT = REPLACE( V_RESULT, 'o', 'O' );
SET V_RESULT = REPLACE( V_RESULT, 'p', 'P' );
SET V_RESULT = REPLACE( V_RESULT, 'q', 'Q' );
SET V_RESULT = REPLACE( V_RESULT, 'r', 'R' );
SET V_RESULT = REPLACE( V_RESULT, 'e', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 's', 'S' );
SET V_RESULT = REPLACE( V_RESULT, 't', 'T' );
SET V_RESULT = REPLACE( V_RESULT, 'u', 'U' );
SET V_RESULT = REPLACE( V_RESULT, 'v', 'V' );
SET V_RESULT = REPLACE( V_RESULT, 'w', 'W' );
SET V_RESULT = REPLACE( V_RESULT, 'x', 'X' );
SET V_RESULT = REPLACE( V_RESULT, 'y', 'Y' );
SET V_RESULT = REPLACE( V_RESULT, 'z', 'Z' );

SET V_RESULT = REPLACE( V_RESULT, '0', '0' );
SET V_RESULT = REPLACE( V_RESULT, '1', '1' );
SET V_RESULT = REPLACE( V_RESULT, '2', '2' );
SET V_RESULT = REPLACE( V_RESULT, '3', '3' );
SET V_RESULT = REPLACE( V_RESULT, '4', '4' );
SET V_RESULT = REPLACE( V_RESULT, '5', '5' );
SET V_RESULT = REPLACE( V_RESULT, '6', '6' );
SET V_RESULT = REPLACE( V_RESULT, '7', '7' );
SET V_RESULT = REPLACE( V_RESULT, '8', '8' );
SET V_RESULT = REPLACE( V_RESULT, '9', '9' );


SET V_RESULT = REPLACE( V_RESULT, '!', '!' );
SET V_RESULT = REPLACE( V_RESULT, '"', '”' );
SET V_RESULT = REPLACE( V_RESULT, '#', '#' );
SET V_RESULT = REPLACE( V_RESULT, '$', '$' );
SET V_RESULT = REPLACE( V_RESULT, '%', '%' );
SET V_RESULT = REPLACE( V_RESULT, '&', '&' );
SET V_RESULT = REPLACE( V_RESULT, '''', '’' );
SET V_RESULT = REPLACE( V_RESULT, '(', '(' );
SET V_RESULT = REPLACE( V_RESULT, ')', ')' );

SET V_RESULT = REPLACE( V_RESULT, '=', '=' );
SET V_RESULT = REPLACE( V_RESULT, '~', ' ̄' );
SET V_RESULT = REPLACE( V_RESULT, '|', '|' );
SET V_RESULT = REPLACE( V_RESULT, '`', '`' );
SET V_RESULT = REPLACE( V_RESULT, '{', '{' );
SET V_RESULT = REPLACE( V_RESULT, '+', '+' );
SET V_RESULT = REPLACE( V_RESULT, '*', '*' );
SET V_RESULT = REPLACE( V_RESULT, '}', '}' );
SET V_RESULT = REPLACE( V_RESULT, '<', '<' );
SET V_RESULT = REPLACE( V_RESULT, '>', '>' );
SET V_RESULT = REPLACE( V_RESULT, '?', '?' );
SET V_RESULT = REPLACE( V_RESULT, '_', '_' );

SET V_RESULT = REPLACE( V_RESULT, '-', '-' );
SET V_RESULT = REPLACE( V_RESULT, '^', '^' );

SET V_RESULT = REPLACE( V_RESULT, '@', '@' );
SET V_RESULT = REPLACE( V_RESULT, '[', '[' );
SET V_RESULT = REPLACE( V_RESULT, ';', ';' );
SET V_RESULT = REPLACE( V_RESULT, ':', ':' );
SET V_RESULT = REPLACE( V_RESULT, ']', ']' );
SET V_RESULT = REPLACE( V_RESULT, ',', ',' );
SET V_RESULT = REPLACE( V_RESULT, '.', '.' );
SET V_RESULT = REPLACE( V_RESULT, '/', '/' );
SET V_RESULT = REPLACE( V_RESULT, '\', '¥' );

SET V_D_CNT  = POSSTR( V_RESULT, '・' );
IF V_D_CNT > 0 THEN
    SET V_RESULT = REPLACE( V_RESULT, '・', '・' );
END IF;

SET V_RESULT = REPLACE( V_RESULT, '゜', '' );
SET V_RESULT = REPLACE( V_RESULT, '゛', '' );

RETURN V_RESULT;
END
@
创建或替换函数FNC\u名称(
在I_ORG_STR VARCHAR(5000)
)
返回VARCHAR(20000)
特定FNC_名称
语言SQL
包含SQL
开始
声明V_D_CNT整数;
声明V_HD_CNT整数;
声明V_RESULT VARCHAR(20000)默认为空;
为SQLEXCEPTION声明退出处理程序
开始
返回V_结果;
结束;
如果I_ORG_STR为NULL或I_ORG_STR='',则
返回V_结果;
如果结束;
设置V_RESULT=I_ORG_STR;
设置V_结果=替换(V_结果,' ', '' );     
设置V_结果=替换(V_结果,,'');
设置V_结果=替换(V_结果,'゚', '゜' );    
设置V_结果=替换(V_结果,'゙', '゛' );    
--カナ、ひら小文字
设置V_结果=替换(V_结果,'ア', 'ア' );
设置V_结果=替换(V_结果,'イ', 'イ' );
设置V_结果=替换(V_结果,'ウ', 'ウ' );
设置V_结果=替换(V_结果,'エ', 'エ' );
设置V_结果=替换(V_结果,'オ', 'オ' );
设置V_结果=替换(V_结果,'カ', 'カ' );
设置V_结果=替换(V_结果,'キ', 'キ' );
设置V_结果=替换(V_结果,'ク', 'ク' );
设置V_结果=替换(V_结果,'ケ', 'ケ' );
设置V_结果=替换(V_结果,'コ', 'コ' );
设置V_结果=替换(V_结果,'サ', 'サ' );
设置V_结果=替换(V_结果,'シ', 'シ' );
设置V_结果=替换(V_结果,'ス', 'ス' );
设置V_结果=替换(V_结果,'セ', 'セ' );
设置V_结果=替换(V_结果,'ソ', 'ソ' );
设置V_结果=替换(V_结果,'タ', 'タ' );
设置V_结果=替换(V_结果,'チ', 'チ' );
设置V_结果=替换(V_结果,'ツ', 'ツ' );
设置V_结果=替换(V_结果,'テ', 'テ' );
设置V_结果=替换(V_结果,'ト', 'ト' );
设置V_结果=替换(V_结果,'ナ', 'ナ' );
设置V_结果=替换(V_结果,'ニ', 'ニ' );
设置V_结果=替换(V_结果,'ヌ', 'ヌ' );
设置V_结果=替换(V_结果,'ネ', 'ネ' );
设置V_结果=替换(V_结果,'ノ', 'ノ' );
设置V_结果=替换(V_结果,'ハ', 'ハ' );
设置V_结果=替换(V_结果,'ヒ', 'ヒ' );
设置V_结果=替换(V_结果,'フ', 'フ' );
设置V_结果=替换(V_结果,'ヘ', 'ヘ' );
设置V_结果=替换(V_结果,'ホ', 'ホ' );
设置V_结果=替换(V_结果,'マ', 'マ' );
设置V_结果=替换(V_结果,'ミ', 'ミ' );
设置V_结果=替换(V_结果,'ム', 'ム' );
设置V_结果=替换(V_结果,'メ', 'メ' );
设置V_结果=替换(V_结果,'モ', 'モ' );
设置V_结果=替换(V_结果,'ヤ', 'ヤ' );
设置V_结果=替换(V_结果,'ユ', 'ユ' );
设置V_结果=替换(V_结果,'ヨ', 'ヨ' );
设置V_结果=替换(V_结果,'ラ', 'ラ' );
设置V_结果=替换(V_结果,'リ', 'リ' );
设置V_结果=替换(V_结果,'ル', 'ル' );
设置V_结果=替换(V_结果,'レ', 'レ' );
设置V_结果=替换(V_结果,'ロ', 'ロ' );
设置V_结果=替换(V_结果,'ワ', 'ワ' );
设置V_结果=替换(V_结果,'ヲ', 'ヲ' );
设置V_结果=替换(V_结果,'ン', 'ン' );
设置V_结果=替换(V_结果,'ァ', 'ア' );
设置V_结果=替换(V_结果,'ィ', 'イ' );
设置V_结果=替换(V_结果,'ゥ', 'ウ' );
设置V_结果=替换(V_结果,'ェ', 'エ' );
设置V_结果=替换(V_结果,'ォ', 'オ' );
设置V_结果=替换(V_结果,'ャ', 'ヤ' );
设置V_结果=替换(V_结果,'ュ', 'ユ' );
设置V_结果=替换(V_结果,'ョ', 'ヨ' );
设置V_结果=替换(V_结果,'ッ', 'ツ' );
设置V_结果=替换(V_结果,'ヮ', 'ワ' );
设置V_结果=替换(V_结果,'ァ', 'ア' );
设置V_结果=替换(V_结果,'ィ', 'イ' );
设置V_结果=替换(V_结果,'ゥ', 'ウ' );
设置V_结果=替换(V_结果,'ェ', 'エ' );
设置V_结果=替换(V_结果,'ォ', 'オ' );
设置V_结果=替换(V_结果,'ャ', 'ヤ' );
设置V_结果=替换(V_结果,'ュ', 'ユ' );
设置V_结果=替换(V_结果,'ョ', 'ヨ' );
设置V_结果=替换(V_结果,'ッ', 'ツ' );
设置V_结果=替换(V_结果,'ー', 'ー' );
设置V_结果=替换(V_结果,'ぁ', 'あ' );
设置V_结果=替换(V_结果,'ぃ', 'い' );
设置V_结果=替换(V_结果,'ぅ', 'う' );
设置V_结果=替换(V_结果,'ぇ', 'え' );
设置V_结果=替换(V_结果,'ぉ', 'お' );
设置V_结果=替换(V_结果,'ゃ', 'や' );
设置V_结果=替换(V_结果,'ゅ', 'ゆ' );
设置V_结果=替换(V_结果,'ょ', 'よ' );
设置V_结果=替换(V_结果,'っ', 'つ' );
设置V_结果=替换(V_结果,'ゎ', 'わ' );
设置V_D_CNT=POSSTR(V_结果,'゛' );
设置V_HD_CNT=POSSTR(V_结果,'゜' );
如果V_D_CNT>0或V_HD_CNT>0,则
设置V_结果=替换(V_结果,'カ゛', 'ガ' );
设置V_结果=替换(V_结果,'キ゛', 'ギ' );
设置V_结果=替换(V_结果,'ク゛', 'グ' );
设置V_结果=替换(V_结果,'ケ゛', 'ゲ' );
设置V_结果=替换(V_结果,'コ゛', 'ゴ' );
设置V_结果=替换(V_结果,'サ゛', 'ザ' );
设置V_结果=替换(V_结果,'シ゛', 'ジ' );
设置V_结果=替换(V_结果,'ス゛', 'ズ' );
设置V_结果=替换(V_结果,'セ゛', '?
create or replace procedure zz_kit2(
out O_VALUE1 VARCHAR(20000), OUT O_VALUE2 VARCHAR(20000)    
)
SPECIFIC zz_kit2

P1:BEGIN
--123456ABCDEF   ->123456ABCABC
--update TBL_MEM_ACC SET FILLER1 = FNC_NAME2('A');
set O_VALUE1=FNC_NAME('A');
set O_VALUE2=FNC_NAME2('A');
END P1
CREATE OR REPLACE FUNCTION FNC_NAME(
IN I_ORG_STR   VARCHAR(5000)
)
RETURNS VARCHAR(20000)
SPECIFIC FNC_NAME
LANGUAGE SQL
CONTAINS SQL

BEGIN
DECLARE V_D_CNT  INTEGER;
DECLARE V_HD_CNT INTEGER;
DECLARE V_RESULT VARCHAR(20000) DEFAULT NULL;

DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
    RETURN V_RESULT;    
END;


IF  I_ORG_STR IS NULL OR I_ORG_STR = ''  THEN
    RETURN V_RESULT;
END IF;

SET V_RESULT = I_ORG_STR;

SET V_RESULT = REPLACE( V_RESULT, ' ', '' );     
SET V_RESULT = REPLACE( V_RESULT, ' ', '' );      

SET V_RESULT = REPLACE( V_RESULT, '゚', '゜' );    
SET V_RESULT = REPLACE( V_RESULT, '゙', '゛' );    

--カナ、ひら小文字
SET V_RESULT = REPLACE( V_RESULT, 'ア', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'イ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ウ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'エ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'オ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'カ', 'カ' );
SET V_RESULT = REPLACE( V_RESULT, 'キ', 'キ' );
SET V_RESULT = REPLACE( V_RESULT, 'ク', 'ク' );
SET V_RESULT = REPLACE( V_RESULT, 'ケ', 'ケ' );
SET V_RESULT = REPLACE( V_RESULT, 'コ', 'コ' );
SET V_RESULT = REPLACE( V_RESULT, 'サ', 'サ' );
SET V_RESULT = REPLACE( V_RESULT, 'シ', 'シ' );
SET V_RESULT = REPLACE( V_RESULT, 'ス', 'ス' );
SET V_RESULT = REPLACE( V_RESULT, 'セ', 'セ' );
SET V_RESULT = REPLACE( V_RESULT, 'ソ', 'ソ' );
SET V_RESULT = REPLACE( V_RESULT, 'タ', 'タ' );
SET V_RESULT = REPLACE( V_RESULT, 'チ', 'チ' );
SET V_RESULT = REPLACE( V_RESULT, 'ツ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'テ', 'テ' );
SET V_RESULT = REPLACE( V_RESULT, 'ト', 'ト' );
SET V_RESULT = REPLACE( V_RESULT, 'ナ', 'ナ' );
SET V_RESULT = REPLACE( V_RESULT, 'ニ', 'ニ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヌ', 'ヌ' );
SET V_RESULT = REPLACE( V_RESULT, 'ネ', 'ネ' );
SET V_RESULT = REPLACE( V_RESULT, 'ノ', 'ノ' );
SET V_RESULT = REPLACE( V_RESULT, 'ハ', 'ハ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヒ', 'ヒ' );
SET V_RESULT = REPLACE( V_RESULT, 'フ', 'フ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヘ', 'ヘ' );
SET V_RESULT = REPLACE( V_RESULT, 'ホ', 'ホ' );
SET V_RESULT = REPLACE( V_RESULT, 'マ', 'マ' );
SET V_RESULT = REPLACE( V_RESULT, 'ミ', 'ミ' );
SET V_RESULT = REPLACE( V_RESULT, 'ム', 'ム' );
SET V_RESULT = REPLACE( V_RESULT, 'メ', 'メ' );
SET V_RESULT = REPLACE( V_RESULT, 'モ', 'モ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヤ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ユ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヨ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ラ', 'ラ' );
SET V_RESULT = REPLACE( V_RESULT, 'リ', 'リ' );
SET V_RESULT = REPLACE( V_RESULT, 'ル', 'ル' );
SET V_RESULT = REPLACE( V_RESULT, 'レ', 'レ' );
SET V_RESULT = REPLACE( V_RESULT, 'ロ', 'ロ' );
SET V_RESULT = REPLACE( V_RESULT, 'ワ', 'ワ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヲ', 'ヲ' );
SET V_RESULT = REPLACE( V_RESULT, 'ン', 'ン' );

SET V_RESULT = REPLACE( V_RESULT, 'ァ', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'ィ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゥ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'ェ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'ォ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'ャ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ュ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ョ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ッ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'ヮ', 'ワ' );

SET V_RESULT = REPLACE( V_RESULT, 'ァ', 'ア' );
SET V_RESULT = REPLACE( V_RESULT, 'ィ', 'イ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゥ', 'ウ' );
SET V_RESULT = REPLACE( V_RESULT, 'ェ', 'エ' );
SET V_RESULT = REPLACE( V_RESULT, 'ォ', 'オ' );
SET V_RESULT = REPLACE( V_RESULT, 'ャ', 'ヤ' );
SET V_RESULT = REPLACE( V_RESULT, 'ュ', 'ユ' );
SET V_RESULT = REPLACE( V_RESULT, 'ョ', 'ヨ' );
SET V_RESULT = REPLACE( V_RESULT, 'ッ', 'ツ' );
SET V_RESULT = REPLACE( V_RESULT, 'ー', 'ー' );

SET V_RESULT = REPLACE( V_RESULT, 'ぁ', 'あ' );
SET V_RESULT = REPLACE( V_RESULT, 'ぃ', 'い' );
SET V_RESULT = REPLACE( V_RESULT, 'ぅ', 'う' );
SET V_RESULT = REPLACE( V_RESULT, 'ぇ', 'え' );
SET V_RESULT = REPLACE( V_RESULT, 'ぉ', 'お' );
SET V_RESULT = REPLACE( V_RESULT, 'ゃ', 'や' );
SET V_RESULT = REPLACE( V_RESULT, 'ゅ', 'ゆ' );
SET V_RESULT = REPLACE( V_RESULT, 'ょ', 'よ' );
SET V_RESULT = REPLACE( V_RESULT, 'っ', 'つ' );
SET V_RESULT = REPLACE( V_RESULT, 'ゎ', 'わ' );

SET V_D_CNT  = POSSTR( V_RESULT, '゛' );
SET V_HD_CNT = POSSTR( V_RESULT, '゜' );

IF V_D_CNT > 0 OR V_HD_CNT > 0 THEN
    SET V_RESULT = REPLACE( V_RESULT, 'カ゛', 'ガ' );
    SET V_RESULT = REPLACE( V_RESULT, 'キ゛', 'ギ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ク゛', 'グ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ケ゛', 'ゲ' );
    SET V_RESULT = REPLACE( V_RESULT, 'コ゛', 'ゴ' );

    SET V_RESULT = REPLACE( V_RESULT, 'サ゛', 'ザ' );
    SET V_RESULT = REPLACE( V_RESULT, 'シ゛', 'ジ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ス゛', 'ズ' );
    SET V_RESULT = REPLACE( V_RESULT, 'セ゛', 'ゼ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ソ゛', 'ゾ' );

    SET V_RESULT = REPLACE( V_RESULT, 'タ゛', 'ダ' );
    SET V_RESULT = REPLACE( V_RESULT, 'チ゛', 'ヂ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ツ゛', 'ヅ' );
    SET V_RESULT = REPLACE( V_RESULT, 'テ゛', 'デ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ト゛', 'ド' );

    SET V_RESULT = REPLACE( V_RESULT, 'ハ゛', 'バ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヒ゛', 'ビ' );
    SET V_RESULT = REPLACE( V_RESULT, 'フ゛', 'ブ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヘ゛', 'ベ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ホ゛', 'ボ' );

    SET V_RESULT = REPLACE( V_RESULT, 'ハ゜', 'パ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヒ゜', 'ピ' );
    SET V_RESULT = REPLACE( V_RESULT, 'フ゜', 'プ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ヘ゜', 'ペ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ホ゜', 'ポ' );

    SET V_RESULT = REPLACE( V_RESULT, 'ウ゛', 'ヴ' );

    SET V_RESULT = REPLACE( V_RESULT, 'か゛', 'が' );
    SET V_RESULT = REPLACE( V_RESULT, 'き゛', 'ぎ' );
    SET V_RESULT = REPLACE( V_RESULT, 'く゛', 'ぐ' );
    SET V_RESULT = REPLACE( V_RESULT, 'け゛', 'げ' );
    SET V_RESULT = REPLACE( V_RESULT, 'こ゛', 'ご' );

    SET V_RESULT = REPLACE( V_RESULT, 'さ゛', 'ざ' );
    SET V_RESULT = REPLACE( V_RESULT, 'し゛', 'じ' );
    SET V_RESULT = REPLACE( V_RESULT, 'す゛', 'ず' );
    SET V_RESULT = REPLACE( V_RESULT, 'せ゛', 'ぜ' );
    SET V_RESULT = REPLACE( V_RESULT, 'そ゛', 'ぞ' );

    SET V_RESULT = REPLACE( V_RESULT, 'た゛', 'だ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ち゛', 'ぢ' );
    SET V_RESULT = REPLACE( V_RESULT, 'つ゛', 'づ' );
    SET V_RESULT = REPLACE( V_RESULT, 'て゛', 'で' );
    SET V_RESULT = REPLACE( V_RESULT, 'と゛', 'ど' );

    SET V_RESULT = REPLACE( V_RESULT, 'は゛', 'ば' );
    SET V_RESULT = REPLACE( V_RESULT, 'ひ゛', 'び' );
    SET V_RESULT = REPLACE( V_RESULT, 'ふ゛', 'ぶ' );
    SET V_RESULT = REPLACE( V_RESULT, 'へ゛', 'べ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ほ゛', 'ぼ' );

    SET V_RESULT = REPLACE( V_RESULT, 'は゜', 'ぱ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ひ゜', 'ぴ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ふ゜', 'ぷ' );
    SET V_RESULT = REPLACE( V_RESULT, 'へ゜', 'ぺ' );
    SET V_RESULT = REPLACE( V_RESULT, 'ほ゜', 'ぽ' );
END IF;


-- 英数
SET V_RESULT = TRANSLATE( V_RESULT );  

SET V_RESULT = REPLACE( V_RESULT, 'A', 'A' );
SET V_RESULT = REPLACE( V_RESULT, 'B', 'B' );
SET V_RESULT = REPLACE( V_RESULT, 'C', 'C' );
SET V_RESULT = REPLACE( V_RESULT, 'D', 'D' );
SET V_RESULT = REPLACE( V_RESULT, 'E', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 'F', 'F' );
SET V_RESULT = REPLACE( V_RESULT, 'G', 'G' );
SET V_RESULT = REPLACE( V_RESULT, 'H', 'H' );
SET V_RESULT = REPLACE( V_RESULT, 'I', 'I' );
SET V_RESULT = REPLACE( V_RESULT, 'J', 'J' );
SET V_RESULT = REPLACE( V_RESULT, 'K', 'K' );
SET V_RESULT = REPLACE( V_RESULT, 'L', 'L' );
SET V_RESULT = REPLACE( V_RESULT, 'M', 'M' );
SET V_RESULT = REPLACE( V_RESULT, 'N', 'N' );
SET V_RESULT = REPLACE( V_RESULT, 'O', 'O' );
SET V_RESULT = REPLACE( V_RESULT, 'P', 'P' );
SET V_RESULT = REPLACE( V_RESULT, 'Q', 'Q' );
SET V_RESULT = REPLACE( V_RESULT, 'R', 'R' );
SET V_RESULT = REPLACE( V_RESULT, 'S', 'S' );
SET V_RESULT = REPLACE( V_RESULT, 'T', 'T' );
SET V_RESULT = REPLACE( V_RESULT, 'U', 'U' );
SET V_RESULT = REPLACE( V_RESULT, 'V', 'V' );
SET V_RESULT = REPLACE( V_RESULT, 'W', 'W' );
SET V_RESULT = REPLACE( V_RESULT, 'X', 'X' );
SET V_RESULT = REPLACE( V_RESULT, 'Y', 'Y' );
SET V_RESULT = REPLACE( V_RESULT, 'Z', 'Z' );

SET V_RESULT = REPLACE( V_RESULT, 'a', 'A' );
SET V_RESULT = REPLACE( V_RESULT, 'b', 'B' );
SET V_RESULT = REPLACE( V_RESULT, 'c', 'C' );
SET V_RESULT = REPLACE( V_RESULT, 'd', 'D' );
SET V_RESULT = REPLACE( V_RESULT, 'e', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 'f', 'F' );
SET V_RESULT = REPLACE( V_RESULT, 'g', 'G' );
SET V_RESULT = REPLACE( V_RESULT, 'h', 'H' );
SET V_RESULT = REPLACE( V_RESULT, 'i', 'I' );
SET V_RESULT = REPLACE( V_RESULT, 'j', 'J' );
SET V_RESULT = REPLACE( V_RESULT, 'k', 'K' );
SET V_RESULT = REPLACE( V_RESULT, 'l', 'L' );
SET V_RESULT = REPLACE( V_RESULT, 'm', 'M' );
SET V_RESULT = REPLACE( V_RESULT, 'n', 'N' );
SET V_RESULT = REPLACE( V_RESULT, 'o', 'O' );
SET V_RESULT = REPLACE( V_RESULT, 'p', 'P' );
SET V_RESULT = REPLACE( V_RESULT, 'q', 'Q' );
SET V_RESULT = REPLACE( V_RESULT, 'r', 'R' );
SET V_RESULT = REPLACE( V_RESULT, 'e', 'E' );
SET V_RESULT = REPLACE( V_RESULT, 's', 'S' );
SET V_RESULT = REPLACE( V_RESULT, 't', 'T' );
SET V_RESULT = REPLACE( V_RESULT, 'u', 'U' );
SET V_RESULT = REPLACE( V_RESULT, 'v', 'V' );
SET V_RESULT = REPLACE( V_RESULT, 'w', 'W' );
SET V_RESULT = REPLACE( V_RESULT, 'x', 'X' );
SET V_RESULT = REPLACE( V_RESULT, 'y', 'Y' );
SET V_RESULT = REPLACE( V_RESULT, 'z', 'Z' );

SET V_RESULT = REPLACE( V_RESULT, '0', '0' );
SET V_RESULT = REPLACE( V_RESULT, '1', '1' );
SET V_RESULT = REPLACE( V_RESULT, '2', '2' );
SET V_RESULT = REPLACE( V_RESULT, '3', '3' );
SET V_RESULT = REPLACE( V_RESULT, '4', '4' );
SET V_RESULT = REPLACE( V_RESULT, '5', '5' );
SET V_RESULT = REPLACE( V_RESULT, '6', '6' );
SET V_RESULT = REPLACE( V_RESULT, '7', '7' );
SET V_RESULT = REPLACE( V_RESULT, '8', '8' );
SET V_RESULT = REPLACE( V_RESULT, '9', '9' );


SET V_RESULT = REPLACE( V_RESULT, '!', '!' );
SET V_RESULT = REPLACE( V_RESULT, '"', '”' );
SET V_RESULT = REPLACE( V_RESULT, '#', '#' );
SET V_RESULT = REPLACE( V_RESULT, '$', '$' );
SET V_RESULT = REPLACE( V_RESULT, '%', '%' );
SET V_RESULT = REPLACE( V_RESULT, '&', '&' );
SET V_RESULT = REPLACE( V_RESULT, '''', '’' );
SET V_RESULT = REPLACE( V_RESULT, '(', '(' );
SET V_RESULT = REPLACE( V_RESULT, ')', ')' );

SET V_RESULT = REPLACE( V_RESULT, '=', '=' );
SET V_RESULT = REPLACE( V_RESULT, '~', ' ̄' );
SET V_RESULT = REPLACE( V_RESULT, '|', '|' );
SET V_RESULT = REPLACE( V_RESULT, '`', '`' );
SET V_RESULT = REPLACE( V_RESULT, '{', '{' );
SET V_RESULT = REPLACE( V_RESULT, '+', '+' );
SET V_RESULT = REPLACE( V_RESULT, '*', '*' );
SET V_RESULT = REPLACE( V_RESULT, '}', '}' );
SET V_RESULT = REPLACE( V_RESULT, '<', '<' );
SET V_RESULT = REPLACE( V_RESULT, '>', '>' );
SET V_RESULT = REPLACE( V_RESULT, '?', '?' );
SET V_RESULT = REPLACE( V_RESULT, '_', '_' );

SET V_RESULT = REPLACE( V_RESULT, '-', '-' );
SET V_RESULT = REPLACE( V_RESULT, '^', '^' );

SET V_RESULT = REPLACE( V_RESULT, '@', '@' );
SET V_RESULT = REPLACE( V_RESULT, '[', '[' );
SET V_RESULT = REPLACE( V_RESULT, ';', ';' );
SET V_RESULT = REPLACE( V_RESULT, ':', ':' );
SET V_RESULT = REPLACE( V_RESULT, ']', ']' );
SET V_RESULT = REPLACE( V_RESULT, ',', ',' );
SET V_RESULT = REPLACE( V_RESULT, '.', '.' );
SET V_RESULT = REPLACE( V_RESULT, '/', '/' );
SET V_RESULT = REPLACE( V_RESULT, '\', '¥' );

SET V_D_CNT  = POSSTR( V_RESULT, '・' );
IF V_D_CNT > 0 THEN
    SET V_RESULT = REPLACE( V_RESULT, '・', '・' );
END IF;

SET V_RESULT = REPLACE( V_RESULT, '゜', '' );
SET V_RESULT = REPLACE( V_RESULT, '゛', '' );

RETURN V_RESULT;
END
@
CREATE OR REPLACE FUNCTION HALF_WIDTH_TO_FULL_WIDTH(X VARCHAR(5000))
RETURNS VARCHAR(5000)
LANGUAGE SQL CONTAINS SQL DETERMINISTIC NO EXTERNAL ACTION
RETURN
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
 X
,' ', '' )     
, ' ', '' )      
--
, '゚', '゜' )    
, '゙', '゛' )    
--
, 'ア', 'ア' )
, 'イ', 'イ' )
, 'ウ', 'ウ' )
, 'エ', 'エ' )
, 'オ', 'オ' )
, 'カ', 'カ' )
, 'キ', 'キ' )
, 'ク', 'ク' )
, 'ケ', 'ケ' )
, 'コ', 'コ' )
, 'サ', 'サ' )
, 'シ', 'シ' )
, 'ス', 'ス' )
, 'セ', 'セ' )
, 'ソ', 'ソ' )
, 'タ', 'タ' )
, 'チ', 'チ' )
, 'ツ', 'ツ' )
, 'テ', 'テ' )
, 'ト', 'ト' )
, 'ナ', 'ナ' )
, 'ニ', 'ニ' )
, 'ヌ', 'ヌ' )
, 'ネ', 'ネ' )
, 'ノ', 'ノ' )
, 'ハ', 'ハ' )
, 'ヒ', 'ヒ' )
, 'フ', 'フ' )
, 'ヘ', 'ヘ' )
, 'ホ', 'ホ' )
, 'マ', 'マ' )
, 'ミ', 'ミ' )
, 'ム', 'ム' )
, 'メ', 'メ' )
, 'モ', 'モ' )
, 'ヤ', 'ヤ' )
, 'ユ', 'ユ' )
, 'ヨ', 'ヨ' )
, 'ラ', 'ラ' )
, 'リ', 'リ' )
, 'ル', 'ル' )
, 'レ', 'レ' )
, 'ロ', 'ロ' )
, 'ワ', 'ワ' )
, 'ヲ', 'ヲ' )
, 'ン', 'ン' )
--
, 'ァ', 'ア' )
, 'ィ', 'イ' )
, 'ゥ', 'ウ' )
, 'ェ', 'エ' )
, 'ォ', 'オ' )
, 'ャ', 'ヤ' )
, 'ュ', 'ユ' )
, 'ョ', 'ヨ' )
, 'ッ', 'ツ' )
, 'ヮ', 'ワ' )
--
, 'ァ', 'ア' )
, 'ィ', 'イ' )
, 'ゥ', 'ウ' )
, 'ェ', 'エ' )
, 'ォ', 'オ' )
, 'ャ', 'ヤ' )
, 'ュ', 'ユ' )
, 'ョ', 'ヨ' )
, 'ッ', 'ツ' )
, 'ー', 'ー' )
--
, 'ぁ', 'あ' )
, 'ぃ', 'い' )
, 'ぅ', 'う' )
, 'ぇ', 'え' )
, 'ぉ', 'お' )
, 'ゃ', 'や' )
, 'ゅ', 'ゆ' )
, 'ょ', 'よ' )
, 'っ', 'つ' )
, 'ゎ', 'わ' )
CREATE OR REPLACE FUNCTION DB_NORMALIZE_UNICODE_NFKC (S VARCHAR(32000))
RETURNS VARCHAR(32000)
    NO EXTERNAL ACTION
    DETERMINISTIC
RETURN
    XMLCAST(XMLQUERY('fn:normalize-unicode($S, ''NFKC'' )') AS VARCHAR(32000))