zoukankan      html  css  js  c++  java
  • oracle 中解析某个表各个字段的描述 {}{}{}

          昨天老大让我做一个数据字典生成工具,也就是将 oracle 数据库表的各个表结构写入 excel ,仔细琢磨了一下,有点难。

    不过问题既然出来了,那就一点一点的解决咯,首先碰到的问题就是字符串的拆分。

          因为我们这个项目中的表各个字段的 comments 格式是:{}{}{}, 所以要解析这三个{}内的内容,并将其作为列写入 word 表。

    对 oracle 的语法也不怎么熟,在网上找了些资料,看准了2个函数 instr 和 substr, 因为好像 oracle 没有系统函数可以实现分割字符串(如果有,还请高手教我),

    就像 .net 中的 string.split(char c) 一样,所以只能自己写了。

          写了一个自定义函数,源码如下:

    create or replace function splita(string varchar2, splitstring varchar2,num integer) return varchar2 is

    index1
    integer;
    index2
    integer;
    value1
    varchar2(100); --保存第一个{} 内的信息
    value2 varchar2(100);--保存第二个{} 内的信息
    value3 varchar2(100);--保存第三个{} 内的信息
    valueend varchar2(100); --最后设定的返回值
    --
    解析 comments, 获得各个 {} 中的内容
    begin

    index1 :
    = instr(string,splitstring,2,1);
    value1 :
    = substr(string,2,index1-2);

    index2 :
    = instr(string,splitstring,2,2);
    value2 :
    = substr(string, index1+2, index2-index1-2);

    value3 :
    = substr(string,index2+2,instr(string, '}',1,3)-index2-2);

    if num=1 then
    valueend :
    = value1;
    elsif num
    =2 then
    valueend :
    = value2;
    elsif num
    =3 then
    valueend :
    = value3;
    end if;

    return valueend;

    end;

    其中第三个参数表示要获取的是哪个 {} 内的内容。

  • 相关阅读:
    Yii2 的 updateAll 方法参数详解
    Yii2 数据库查询汇总
    Git常见报错
    git rebase篇
    在 Yii 2.0 上,使用 updateAll() 更新表列值为同一表的另一列值的实现
    Git从其他分支merge个别文件
    Git cherry-pick 复制多个commit
    Git 删除某次提交(某个commit)的方法
    多进程记录
    python3安装Crypto过程
  • 原文地址:https://www.cnblogs.com/jiejie_peng/p/1727658.html
Copyright © 2011-2022 走看看