存储过程Split的有关问题
存储过程Split的问题
begin
--获取所有接收人GUID
SELECT * INTO V_DEALERGUID from table(FT_SPLIT(V_WORKORDERCYCLE.F_DEALER_IDS,','));
end
说明:这是我在存储过程begin end模块中加的代码 ,我想把一个字符串(V_WORKORDERCYCLE.F_DEALER_IDS loop里面循环获取的,这是一个很长的GUIDS字符串)Split掉,然后想获取这个集合里面的所有数据,然后进行循环insert到一张表。
我想问的是:查询结果放到V_DEALERGUIDS 里面,这个 V_DEALERGUIDS 变量怎么申明,怎么循环这个集合,小弟是第一次接触这些东西,请各位大哥多多帮助下,谢谢了
------最佳解决方案--------------------
用游标,很简单,给你例子。
PROCEDURE find_staff
is
-- 声明一个游标,查询表
CURSOR c1 IS
SELECT empno, ename FROM emp ;
BEGIN
--游标循环,通过ee变量获取记录的,如ee.empno,ee.ename
FOR ee IN c1 LOOP
--循环调用insert into 。
insert into ttt values(ee.empno,ee.ename);
END LOOP;
COMMIT;
END;
------其他解决方案--------------------
游标可以传参数的。如
CURSOR c1(name) IS
SELECT empno, ename FROM emp where ename=name
使用时,传入参数,如
FOR ee IN c1('hh') LOOP
------其他解决方案--------------------
JUST LIKE THIS。
TYPE fieldType IS TABLE OF VARCHAR2(500) INDEX BY BINARY_INTEGER;
V_DEALERGUID fieldType;
begin
--获取所有接收人GUID
SELECT * BULK COLLECT INTO V_DEALERGUID from table(FT_SPLIT(V_WORKORDERCYCLE.F_DEALER_IDS,','));
end;
------其他解决方案--------------------
我用游标 我怎么把我那个字符串参数传进去?
begin
--获取所有接收人GUID
SELECT * INTO V_DEALERGUID from table(FT_SPLIT(V_WORKORDERCYCLE.F_DEALER_IDS,','));
end
说明:这是我在存储过程begin end模块中加的代码 ,我想把一个字符串(V_WORKORDERCYCLE.F_DEALER_IDS loop里面循环获取的,这是一个很长的GUIDS字符串)Split掉,然后想获取这个集合里面的所有数据,然后进行循环insert到一张表。
我想问的是:查询结果放到V_DEALERGUIDS 里面,这个 V_DEALERGUIDS 变量怎么申明,怎么循环这个集合,小弟是第一次接触这些东西,请各位大哥多多帮助下,谢谢了
------最佳解决方案--------------------
用游标,很简单,给你例子。
PROCEDURE find_staff
is
-- 声明一个游标,查询表
CURSOR c1 IS
SELECT empno, ename FROM emp ;
BEGIN
--游标循环,通过ee变量获取记录的,如ee.empno,ee.ename
FOR ee IN c1 LOOP
--循环调用insert into 。
insert into ttt values(ee.empno,ee.ename);
END LOOP;
COMMIT;
END;
------其他解决方案--------------------
游标可以传参数的。如
CURSOR c1(name) IS
SELECT empno, ename FROM emp where ename=name
使用时,传入参数,如
FOR ee IN c1('hh') LOOP
------其他解决方案--------------------
JUST LIKE THIS。
TYPE fieldType IS TABLE OF VARCHAR2(500) INDEX BY BINARY_INTEGER;
V_DEALERGUID fieldType;
begin
--获取所有接收人GUID
SELECT * BULK COLLECT INTO V_DEALERGUID from table(FT_SPLIT(V_WORKORDERCYCLE.F_DEALER_IDS,','));
end;
------其他解决方案--------------------
我用游标 我怎么把我那个字符串参数传进去?