
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 怎么循环插入到数据库的一个字段里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)