通过Oracle函数SQL实现C# String.Format字符串格式化功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过Oracle函数SQL实现C# String.Format字符串格式化功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3990字,纯文字阅读大概需要6分钟。
内容图文
分割函数CREATE OR REPLACE FUNCTION StringSplit ( SOURCE VARCHAR2, --信息内容 spliter VARCHAR2--分割符 ) RETURN stringarrary IS j INT := 0; i INT := 1; len INT := 0; len1 INT := 0; str VARCHAR2 (4000); returnvalue stringarrary := stringarrary (); BEGIN IF (spliter IS NULL) OR (SOURCE IS NULL) THEN returnvalue.EXTEND; returnvalue (1) := SOURCE; ELSE len := LENGTH (SOURCE); len1 := LENGTH (spliter); WHILE j < len LOOP j := INSTR (SOURCE, spliter, i); IF j = 0 THEN j := len; str := SUBSTR (SOURCE, i); returnvalue.EXTEND; returnvalue (returnvalue.COUNT) := str; IF i >= len THEN EXIT; END IF; ELSE str := SUBSTR (SOURCE, i, j - i); i := j + len1; returnvalue.EXTEND; returnvalue (returnvalue.COUNT) := str; END IF; END LOOP; END IF; RETURN returnvalue; END stringsplit; 1 CREATE OR REPLACE FUNCTION stringsplit (SOURCE VARCHAR2, spliter VARCHAR2)2 RETURN stringarrary
3 IS
4 j INT := 0;
5 i INT := 1;
6 len INT := 0;
7 len1 INT := 0;
8 str VARCHAR2 (4000);
9 returnvalue stringarrary := stringarrary ();
10 BEGIN
11 IF (spliter IS NULL) OR (SOURCE IS NULL)
12 THEN
13 returnvalue.EXTEND;
14 returnvalue (1) := SOURCE;
15 ELSE
16 len := LENGTH (SOURCE);
17 len1 := LENGTH (spliter);
18
19 WHILE j < len
20 LOOP
21 j := INSTR (SOURCE, spliter, i);
22
23 IF j = 0
24 THEN
25 j := len;
26 str := SUBSTR (SOURCE, i);
27 returnvalue.EXTEND;
28 returnvalue (returnvalue.COUNT) := str;
29
30 IF i >= len
31 THEN
32 EXIT;
33 END IF;
34 ELSE
35 str := SUBSTR (SOURCE, i, j - i);
36 i := j + len1;
37 returnvalue.EXTEND;
38 returnvalue (returnvalue.COUNT) := str;
39 END IF;
40 END LOOP;
41 END IF;
42
43 RETURN returnvalue;
44 END stringsplit;
1.分割函数测试如下:
SELECT * FROM TABLE (CAST (StringSplit (‘1|12|123|1234||12345|‘, ‘|‘) AS stringarrary));
结果:
COLUMN_VALUE
1
12
123
1234
12345
OK。
然后封装函数StringFormat:
CREATE OR REPLACE FUNCTION StringFormat (SOURCE VARCHAR2, param VARCHAR2, spliter VARCHAR2) RETURN VARCHAR2 IS i INT := 0; len INT := 0; params stringarrary := stringarrary (); returnvalue VARCHAR2 (4000); BEGIN params := stringsplit (param, spliter); IF params.COUNT > 0 THEN len := params.COUNT; returnvalue := SOURCE; WHILE i < len LOOP returnvalue := REPLACE (returnvalue, CONCAT (CONCAT (‘{‘, TO_CHAR (i)), ‘}‘), params (i + 1)); i := i + 1; END LOOP; END IF; RETURN returnvalue; END stringreplace;1 CREATE OR REPLACE FUNCTION stringreplace (
2 SOURCE VARCHAR2,
3 param VARCHAR2,
4 spliter VARCHAR2
5 )
6 RETURN VARCHAR2
7 IS
8 i INT := 0;
9 len INT := 0;
10 params stringarrary := stringarrary ();
11 returnvalue VARCHAR2 (4000);
12 BEGIN
13 params := stringsplit (param, spliter);
14
15 IF params.COUNT > 0
16 THEN
17 len := params.COUNT;
18 returnvalue := SOURCE;
19
20 WHILE i < len
21 LOOP
22 returnvalue :=
23 REPLACE (returnvalue,
24 CONCAT (CONCAT (‘{‘, TO_CHAR (i)), ‘}‘),
25 params (i + 1)
26 );
27 i := i + 1;
28 END LOOP;
29 END IF;
30
31 RETURN returnvalue;
32 END stringreplace; 2.测试Oracle---StringFormat函数了。
SELECT StringFormat(‘条码{0}当前工站在{1}!‘, ‘123456|FCT‘, ‘|‘) FROM DUAL;1 select stringreplace(‘{0}+{1}={0}{1}‘,‘吱吱|YY‘,‘|‘) from dual;
测试结果:
条码123456当前工站在FCT!
通过Oracle函数SQL实现C# String.Format字符串格式化功能
标签:数据 gre concat 返回 ring ret oop rac 条码
本文系统来源:https://www.cnblogs.com/turnip/p/11082700.html
内容总结
以上是互联网集市为您收集整理的通过Oracle函数SQL实现C# String.Format字符串格式化功能全部内容,希望文章能够帮你解决通过Oracle函数SQL实现C# String.Format字符串格式化功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。