如何将下面这段字符信息按逗号拆分,放入相应的变量,我遇到的问题就是比如何取得“类别”、“状态”等将其存放的相应的变量中:
类别,状态,返回码,返回解释,发卡行,卡号,交易金额,交易日期,清算日期,交易时间,凭证号,POS号,收款员,子商户,终端号,授权号,交易参考号,结帐状态,附加信息
类别,状态,返回码,返回解释,发卡行,卡号,交易金额,交易日期,清算日期,交易时间,凭证号,POS号,收款员,子商户,终端号,授权号,交易参考号,结帐状态,附加信息
解决方案 »
- PL/SQL 菜鸟提问 怎么把相同的人的记录放到同一行中,航班号用逗号隔开
- System用户登陆的实例
- Oracle 数据库里可以放执行档或者压缩档吗?
- 关于导出数据库中blob字段中图片的问题!!!!!!!!!!
- 如何用批处理在Orcal 10g中创建表空间和数据(急急急急急急急急急急急急急急)
- 求一个sql写法
- 一个小问题请教大家
- ...where to_char(END_TIME, 'day') = '星期三' 居然和 where END_TIME = to_date('星期三', 'day');不一样,怎么回事?
- 急需解决的问题!快啊!(我的分好多啊!要多少给多少)
- 一个简单的问题,如何定义一个全局变量?
- 请教有关使用max的sql语句
- select 前25%的记录
应该可以解决楼主的问题
TYPE TYP_TBL_VARCHAR2 IS TABLE OF VARCHAR2(50);FUNCTION SPLIT(P_STR IN VARCHAR2, P_CHAR IN CHAR) RETURN TYP_TBL_VARCHAR2 IS
ARRAY_STRING TYP_TBL_VARCHAR2 := TYP_TBL_VARCHAR2();
V_I NUMBER(10);
POSITION NUMBER(10);
TMP_STR VARCHAR2(500);
BEGIN
TMP_STR := P_STR;
V_I := 1;
POSITION := INSTR(TMP_STR, P_CHAR);
WHILE ( POSITION > 0 ) LOOP
ARRAY_STRING.EXTEND;
ARRAY_STRING(V_I) := SUBSTR(TMP_STR, 1, POSITION - 1);
V_I := V_I + 1;
TMP_STR := SUBSTR(TMP_STR, POSITION + 1);
POSITION := INSTR(TMP_STR, P_CHAR);
END LOOP;
ARRAY_STRING.EXTEND;
ARRAY_STRING(V_I) := TMP_STR; RETURN ARRAY_STRING;
END SPLIT;
create or replace FUNCTION SPLIT(P_STR IN VARCHAR2, P_CHAR IN CHAR)
RETURN TYP_TBL_VARCHAR2 IS
ARRAY_STRING TYP_TBL_VARCHAR2 := TYP_TBL_VARCHAR2();
V_I NUMBER(10);
POSITION NUMBER(10);
TMP_STR VARCHAR2(500);
BEGIN
TMP_STR := P_STR;
V_I := 1;
POSITION := INSTR(TMP_STR, P_CHAR);
WHILE ( POSITION > 0 ) LOOP
ARRAY_STRING.EXTEND;
ARRAY_STRING(V_I) := SUBSTR(TMP_STR, 1, POSITION - 1);
V_I := V_I + 1;
TMP_STR := SUBSTR(TMP_STR, POSITION + 1);
POSITION := INSTR(TMP_STR, P_CHAR);
END LOOP;
ARRAY_STRING.EXTEND;
ARRAY_STRING(V_I) := TMP_STR;
RETURN ARRAY_STRING;
END SPLIT;
SQL> select * from table(split('1,2,3',','));
COLUMN_VALUE
--------------------------------------------------
1
2
3