67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
DELIMITER //
|
|
|
|
CREATE OR REPLACE FUNCTION `trans_cname` (
|
|
p_fieldname VARCHAR(100),
|
|
p_fieldcn NVARCHAR(100)
|
|
)
|
|
/*
|
|
Function : 根據 zen_fields,zen_dd_erp,zen_dd 的內容, 回傳可能的中文欄位 Title
|
|
Description: 通常是配合 sp=zen_fieldspec_best 使用
|
|
Build Date : 2021/11/25
|
|
|
|
Modify History
|
|
Item Who Date Modify Docs
|
|
==== ========== ========== ================================================
|
|
1 Michael 2021/11/25 新增
|
|
2 [改寫者] 2023-11-15 改寫為 MariaDB 版本並最佳化
|
|
*/
|
|
RETURNS NVARCHAR(100)
|
|
DETERMINISTIC
|
|
BEGIN
|
|
DECLARE v_ret NVARCHAR(100);
|
|
DECLARE v_dd_id VARCHAR(100);
|
|
DECLARE v_dd_name VARCHAR(100);
|
|
|
|
SET v_ret = p_fieldcn;
|
|
|
|
IF p_fieldcn = '' OR p_fieldname = p_fieldcn THEN
|
|
-- 先找 zen_fields
|
|
SELECT fieldcn INTO v_ret
|
|
FROM zen_fields
|
|
WHERE fieldname = p_fieldname
|
|
AND fieldname <> fieldcn
|
|
AND IFNULL(fieldcn, '') <> ''
|
|
LIMIT 1;
|
|
|
|
-- 新增 zen_dd_erp(原 erp)
|
|
IF IFNULL(v_ret, '') = '' THEN
|
|
SELECT fieldcn INTO v_ret
|
|
FROM zen_dd_erp
|
|
WHERE fieldname = p_fieldname
|
|
AND fieldname <> fieldcn
|
|
AND IFNULL(fieldcn, '') <> ''
|
|
LIMIT 1;
|
|
END IF;
|
|
|
|
-- 再找 zen_dd
|
|
IF IFNULL(v_ret, '') = '' THEN
|
|
SELECT fieldname, cname INTO v_dd_id, v_dd_name
|
|
FROM zen_dd
|
|
WHERE LOCATE(fieldname, p_fieldname) > 0
|
|
LIMIT 1;
|
|
|
|
IF IFNULL(v_dd_id, '') <> '' THEN
|
|
SET v_ret = REPLACE(p_fieldname, v_dd_id, v_dd_name);
|
|
END IF;
|
|
END IF;
|
|
END IF;
|
|
|
|
-- 實在找不到的話, 只能回傳 fieldname
|
|
/* IF IFNULL(v_ret, '') = '' THEN
|
|
SET v_ret = p_fieldname;
|
|
END IF; */
|
|
|
|
RETURN v_ret;
|
|
END //
|
|
|
|
DELIMITER ; |