# `Fun_deleteManyChar` (function) > 根据in_splict切割字符串,去除重复元素 - **Type:** FUNCTION - **Returns:** `varchar(600)` - **Deterministic:** NO - **SQL data access:** CONTAINS SQL ## Parameters | # | Mode | Name | Type | |---|---|---|---| | 1 | IN | `in_str` | `varchar(600)` | | 2 | IN | `in_splict` | `varchar(600)` | ## Body _Body is not pre-cached. To inspect: `mysql --defaults-file=~/.my.cnf -e 'SHOW CREATE FUNCTION `Fun_deleteManyChar`'`._ ## Narrative **Business context:** Generic string-dedup helper used by `Sp_Bill_Used` (bill / document linkage tracking — checks how many parents an id list has already been consumed by). Header comment is `根据in_splict切割字符串,去除重复元素` ("split the string by `in_splict`, remove duplicates"). When the caller has accumulated a comma-joined id list with possible repeats, it pipes it through this function before counting usage. **What it does:** strips all spaces, collapses doubled separators, appends one trailing separator so the loop has a stop token, then walks the string token-by-token (`SUBSTR` + `INSTR`) and concatenates each token onto `v_result` only if `INSTR(v_result, token) = 0`. Returns the result with the trailing separator trimmed off. Pure string mechanics — no table reads or writes. **Invocation:** called from `Sp_Bill_Used` (and its customer-override variants under `script/客户/千彩` and `script/客户/统兴`) to dedup id lists before counting parent-document usage. No form-master, gdsmodule-hook, or Java caller.