在ORACLE存储过程中如何分割字符串

如:
000001@SPT_BD@XSHG
以@为分割点,分割成三个字段:000001、SPT_BD、XSHG,
以便分别传入到三个变量中。
三个字段,每个字段的长度存在变化

第1个回答  2011-10-11
orcale 支持正则表达式 你学学正则 可以解决

oracle存储过程怎么截取字符串
首先创建一张表t_al_test_sy 字段分别为:pid,str_id,str_dm,str_mc;存储过程如下:create or replace procedure p_al_output as str_id varchar(60);str_dm varchar(60);str_mc varchar(800);str_start number;str_len number;str_length number;str_end number;str_count...

Oracle中怎样用存储过程将一段字符串以逗号为界截取,并将得到的子串存...
--方法 create or replace function f_test_substr(prm1 varchar2, --地prm2 varchar2 , --名称prm3 varchar2, --IPprm4 varchar2 --结果)return varchar2asv_n int:=0; --第几次取v_l int; --:截取次数v_s varchar2(2000); --处理拆分字符串v_s1 varchar2(200)...

关于oracle 存储过程 如何切割一个字符串 转化为字符数组,然后遍历该数 ...
-- 1.字符串中没有标识符 IF Instr(Pv_i_String, Pv_i_Identifier, 1, 1) = 0 THEN Pt_o_Array(Pt_o_Array.Count + 1) := Pv_i_String;ELSE -- 2.字符串中有标识符 WHILE Instr(Lv_Changed_String, Pv_i_Identifier, 1, 1) > 0 LOOP Lv_Tmpstr := Substr(Lv_Changed_Stri...

oracle存储过程传入一个字符串参数'1,2,3,4,5,6,7,8',如何分割并转为数...
create or replace type type_split as table of varchar2(50); --创建一个type,如果为了使split函数具有通用性,请将其size 设大些。\\x0d\\x0a\\x0d\\x0a--创建function\\x0d\\x0acreate or replace function split\\x0d\\x0a(\\x0d\\x0a p_list varchar2,\\x0d\\x0a p_sep ...

Oracle中怎样用存储过程将一段字符串以逗号为界截取,并将得到的子串存...
--方法 create or replace function f_test_substr(prm1 varchar2, --地prm2 varchar2 , --名称prm3 varchar2, --IPprm4 varchar2 --结果)return varchar2asv_n int:=0; --第几次取v_l int; --:截取次数v_s varchar2(2000); --处理拆分字符串v_s1 varchar2(200)...

oracle里面怎么分割字符串
= SUBSTR (p_str, i, j - i); i := j + len1; my_split.EXTEND; my_split (my_split.COUNT) := str; END IF; END LOOP; RETURN my_split; END split; \/(3)存储过程中,使用类似 For T In ( select a,b,c,d from table (split('1,2,3,4',',')) ) Loop --...

Oracle字符串的拆分和拼接
如果是固定的格式,那就好办,检测字段中的“,”分割成四段,然后按要求接起来。使用函数好些,可以直接调用。函数写好:已经测试过。CREATE OR REPLACE FUNCTION json_montage (JSON IN VARCHAR2) RETURN VARCHAR2 ISIn_JSON VARCHAR2(4096);v_JSON VARCHAR2(4096) DEFAULT '{"comicPkgList":[{...

oracle 截取字符串函数
假设要分割的字段名是full_name,所在表是t1:create or replace procedure up(vname1 out varchar2,vname2 out varchar2,vname3 out varchar2)is begin select substr(full_name,1,3),substr(full_name,4,3),substr (full_name,7,3)into vname1,vname2,vname3 from t1;end up;这样你...

Oracle 截取字符串
定义存储过程:create or replace function findNums(expression in varchar2(100)) return varchar2 i number;j number;exp_tmp varchar2(100);nums varcahr2(100);as begin exp_tmp:=expression;nums := "";loop i := instr(exp_tmp,"[")exit when i < 0 exp_tmp:=substr(exp_tmp, i...

oracle一个存储过程怎么根据if或者else拆分成不同的存
首先,识别原始存储过程中的if else条件,将其分解为两个决策分支。举例,假设原始存储过程如下:原始存储过程内容:如果条件成立,则执行特定代码块;否则,执行另一代码块。现有存储过程需拆分为两个新过程,一个处理条件为真时的逻辑,另一个处理条件为假时的逻辑。接下来,定义两个新存储过程,分别...

相似回答