PL/SQL 拆解字符串语句

来源:百度知道 编辑:UC知道 时间:2024/05/15 13:59:25
我想将一列数据拆分后插入到另一张表里~那一列的数据都如下面的格式
姓名|性别|通信地址|联系电话#姓名|性别|通信地址|联系电话#姓名|性别|通信地址|联系电话#
把他们按#拆成多条数据,再按|拆成各项插入到含有
XM,XB,TXDZ,XLDH字段的表中
这样的SQL语句应该怎么写?
因为数据很多~能不能写一个存储过程来实现呢?

我提供一个拆分字符串的通用函数给你,你再写这种SQL:
1、先建立一个包,定义数组类型:
CREATE OR REPLACE PACKAGE pkg_string is

-- Purpose : 字符串处理

-- Public type declarations
TYPE StringArray IS VARRAY(2000) OF VARCHAR2(2000);

END pkg_string;

2、拆分字符串的通用函数:
CREATE OR REPLACE FUNCTION fun_ParseToArray(
a_SourceString IN VARCHAR2, --源字符串
a_Delimiter IN VARCHAR2 --拆分的分隔符
) RETURN pkg_string.StringArray IS
-- ********************************************************
-- 根据分隔符拆分字符串为数组
-- ********************************************************
v_Result pkg_string.StringArray; --数组
iCount INTEGER;
iBegin INTEGER;
sValue VARCHAR2(2000);
sSplitString VARCHAR2(2000);
BEGIN
--检查参数
IF a_SourceString IS NULL OR a_Delimiter IS NULL THEN
RETURN(v_Result);
END IF;
IF a_SourceString = '' THEN
RETURN(v_Result)