# `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.
