Linux安全网 - Linux操作系统_Linux 命令_Linux教程_Linux黑客

会员投稿 投稿指南 本期推荐:
搜索:
您的位置: Linux安全网 > Linux编程 > 数据库管理 > » 正文

一句经典的传入字符串在存储过程中的处理办法

来源: e_wsq 分享至:
-- Created on 2011/12/10 by WSQ
declare
    T            VARCHAR2(8000);
    S            VARCHAR2(8000);
begin
  -- Test statements here
      T := '1.08998,1.23432;2.456,2.1;3.34543,3.678979;4.099,4.567567;';
      IF (T IS NOT NULL) AND (LENGTH(T) > 0) THEN
        WHILE INSTR(T, ',') > 0 LOOP
          S := TRIM(SUBSTR(T, 1, INSTR(T, ';') - 1));
          IF LENGTH(S) > 0 THEN
            DBMS_OUTPUT.PUT_LINE('S:' || S);
            DBMS_OUTPUT.PUT_LINE('V_ROADSEG_ID:' ||SUBSTR(S, 1, INSTR(S, ',', 1, 1) - 1));
            DBMS_OUTPUT.PUT_LINE('V_ROADSEG_INDEX:' ||SUBSTR(S, INSTR(S, ',', 1, 1) + 1));/*
            INSERT INTO T_ROADSEG_POINTS
              (ROADSEG_POINTS_ID, ROADSEG_ID, LON, LAT)
            VALUES
              (SNT_ROADSEG_POINTS.NEXTVAL,
               V_ROADSEG_ID,
               SUBSTR(S, 1, INSTR(S, ',', 1, 1) - 1),
               SUBSTR(S, INSTR(S, ',', 1, 1) + 1));*/
          END IF;
          T := SUBSTR(T, INSTR(T, ';') + 1);
        END LOOP;
      END IF;
 
end;

Tags:
分享至:
最新图文资讯
1 2 3 4 5 6
验证码:点击我更换图片 理智评论文明上网,拒绝恶意谩骂 用户名:
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 发展历史