求大神帮写一个ORACLE自定义函数。 字符串是数据库表中一个字段Str,分隔符是逗号,艮据字典表返回内容

求大神帮写一个ORACLE自定义函数。 字符串是数据库表中一个字段Str,分隔符是逗号,艮据字典表返回内容,第1张

CREATE OR REPLACE FUNCTION f_search_dic_a(p_str VARCHAR2)

RETURN VARCHAR2

IS

l_result VARCHAR2(4000);

l_dic_a_str VARCHAR2(100);

l_code VARCHAR2(10);

l_length NUMBER;

l_start_position NUMBER := 1;

l_seperator_position NUMBER;

BEGIN

l_length := length(p_str);

LOOP

l_dic_a_str := NULL;

l_code := NULL;

l_seperator_position := INSTR(p_str, ',', l_start_position);

EXIT WHEN l_seperator_position = 0;

l_code := SUBSTR(p_str, l_start_position, l_seperator_position-l_start_position);

SELECT value

INTO l_dic_a_str

FROM dic_a

WHERE code = l_code;

l_result := l_result || l_dic_a_str;

l_start_position := l_seperator_position + 1; END LOOP;

l_code := SUBSTR(p_str, l_start_position, l_length-l_start_position+1);

SELECT value

INTO l_dic_a_str

FROM dic_a

WHERE code = l_code;

l_result := l_result || l_dic_a_str;

RETURN l_result;

END;

/

这是测试结果

SQL> select f_search_dic_a('02,05,06,08,10,00') from dual;

F_SEARCH_DIC_A('02,05,06,08,10

--------------------------------------------------------------------------------

贰伍陆捌拾零

再给两个测试

SQL> select f_search_dic_a('02,05,零,零,06,08,10,00') from dual;

F_SEARCH_DIC_A('02,05,零,零,06

--------------------------------------------------------------------------------

贰伍〇〇陆捌拾零

SQL> select f_search_dic_a('01,零,03,07,02,04,零,04,03,01') from dual;

F_SEARCH_DIC_A('01,零,03,07,02

--------------------------------------------------------------------------------

壹〇叁柒贰肆〇肆叁壹

如果不纠结变量本身定义的意义,你想让它是什么类型就是什么类型,就看你定义的语句了。

从变量本身的意义看@str,应该是要定义成字符型的。

你看到这个变量,只要往上去查找代码,一定可以查找到

declare @str 类型

这个语句。如果没有,那么就错了。

$str = array('a','b','c');

foreach ($str as $v){

$sql = 'insert into tableName(`feildName`) values("' $v '")';

mysql_query($sql);

}

str2list,应该是一个自定义函数吧,

就是把以逗号(其它分隔符也有可能)分隔的字符串转换成多行数据返回,比如

a,b,3,45,gg

返回的是5行:

a

b

3

45

gg

list就是多行的table of varchar2(50)吧

不知道是否你要的答案。

以上就是关于求大神帮写一个ORACLE自定义函数。 字符串是数据库表中一个字段Str,分隔符是逗号,艮据字典表返回内容全部的内容,包括:求大神帮写一个ORACLE自定义函数。 字符串是数据库表中一个字段Str,分隔符是逗号,艮据字典表返回内容、求教:SQL的@str是什么变量举个例子,谢谢、$str是一个数组 用foreach 怎么循环插入到数据库的一个字段里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9549636.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存