oracle 输入16位银行卡号,在表中自动变为4位为一组的银行卡号,求自己写的函数。
答案:2 悬赏:20
解决时间 2021-02-22 05:26
- 提问者网友:曖昧情执
- 2021-02-22 01:38
老师让在 oracle 下 输入16位银行卡号,通过中自动变为4位为一组的银行卡号保存起来,求自己写的函数。各位大神们!!
最佳答案
- 二级知识专家网友:一只傻青衣
- 2021-02-22 01:52
函数例子:
CREATE OR REPLACe FUNCTION MY_FUN
(
BANK_NO NUMBER,
SEPARATOR VARCHAR2 DEFAULT ' '
) RETURN VARCHAR2 IS
STR1 VARCHAr2(100);
STR2 VARCHAr2(100);
BEGIN
STR1 := BANK_NO;
WHILE STR1 IS NOT NULL LOOP
STR2 := STR2 || SEPARATOR || SUBSTr(STR1, 1, 4);
STR1 := SUBSTr(STR1, 5);
END LOOP;
RETURN LTRIm(STR2,SEPARATOR);
END;效果测试:
SQL> SELECT MY_FUN(1234123412341234) FROM DUAL;
MY_FUN(1234123412341234)
--------------------------------------------------------------------------------
1234 1234 1234 1234
SQL> SELECt MY_FUN(1234123412341234,',') FROM DUAL;
MY_FUN(1234123412341234,',')
--------------------------------------------------------------------------------
1234,1234,1234,1234
CREATE OR REPLACe FUNCTION MY_FUN
(
BANK_NO NUMBER,
SEPARATOR VARCHAR2 DEFAULT ' '
) RETURN VARCHAR2 IS
STR1 VARCHAr2(100);
STR2 VARCHAr2(100);
BEGIN
STR1 := BANK_NO;
WHILE STR1 IS NOT NULL LOOP
STR2 := STR2 || SEPARATOR || SUBSTr(STR1, 1, 4);
STR1 := SUBSTr(STR1, 5);
END LOOP;
RETURN LTRIm(STR2,SEPARATOR);
END;效果测试:
SQL> SELECT MY_FUN(1234123412341234) FROM DUAL;
MY_FUN(1234123412341234)
--------------------------------------------------------------------------------
1234 1234 1234 1234
SQL> SELECt MY_FUN(1234123412341234,',') FROM DUAL;
MY_FUN(1234123412341234,',')
--------------------------------------------------------------------------------
1234,1234,1234,1234
全部回答
- 1楼网友:留下所有热言
- 2021-02-22 03:27
to_char(card,'9999,9999,9999,9999')
再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯