• SuperMap关联外部数据库


    在我们使用Oracle数据库时,空间数据和业务数据通常是放在不同的库中,在处理时又需要通过业务数据来对空间数据进行相应处理,这个时候我们希望能够将二者联系起来.看到有用户曾这么用过,将方法分享一下:

    在Oracle中建立四个用户map1,map2,map3,map4,通过Deskpro在前三个数据源中创建数据集(测试时采用的是点数据集,且三个数据集的记录数一致,为10),分别为aa,bb,cc,后两个数据集中各有一个自己的字段,字段名称分别为bb,cc,map4是一个业务属性表,在此用户下存储了一个普通的业务信息表(记录数也为10),现希望将map2,map3,map4中的信息全部与map1中的空间数据关联.操作如下:

    1.首先以map2身份登录SQLPLUS,将此用户下的选择及更新权限赋给map1,

    grant select,update on bb to map1;(前面说过了bb是map2用户对应数据源下的数据集)

    commit;

    之后对map3,map4做同样的操作,

    grant select,update on cc to map1;

    commit;

    grant select,update on dd to map1;(虽然map4不是SuperMap数据源,但无任何影响)

    commit;

    2.以map1身份登录SQLPLUS,创建视图

    create view vw_test as
    select aa.SmID,
    aa.SmX,
    aa.SmY,
    o2.bb as bb,
    o3.cc as cc,
    o4.dd as dd
    from aa,map2.bb o2,map3.cc o3,map4.dd o4
    where aa.SmID=o2.SmID and aa.SmID=o3.SmID and aa.SmID=o4.ID;

    在创视图时,可能会提示权限不够,这个时候请赋予map1管理员的权限

    3.修改SuperMap系统表

    在创建了视图之后,可以在视图中看到四个用户下相应表的信息,但在SuperMap中还是无法使用,如果要在SuperMap中使用此视图,最好的方式莫过于在map1数据源下创建一个包含视图所有信息的数据集,接下来就实现这个吧。

    首先改一下SmRegister表,大家都知道,在SmRegister表中一条记录对应一个数据集,要想在map1数据源下创建一个包含视图所有信息的数据集,这里我们就需要添加一条记录,下面将需要注意的几个字段值提出来,其它字段值可以暂时忽略

    SMDATASETID肯定是在之前最大SMDATASETID的基础上加1

    SMDATASETNAME这个名字可以任意,是数据集的名称

    SMTABLENAME此处为视图的名称,也就是vw_test

    SMDATASETTYPE此处为创建的数据集的类型,可以是多个类型,在前面存在SMX和SMY两个字段,所以此处可以为点数据集也可为属性表数据集,值分别为1和0.测试时是以点数据集为例,其它数据集均可,如果是其它类型数据集,需要在创建视图时将系统字段全部拷贝过去,另外,在SmRegister表中将相关信息填齐,线面数据集比点的信息要多,不能漏掉。

    SMRECORDCOUNT此处为视图中的记录数,之前几个数据集中的记录都为10,所以此处也为10

    SMLASTUPDATE以下三个都需要填一下,按照其它数据集填一下时间就可以了

    SMCREATETIME

    SMLASTUPDATETIME

    SMCREATOR这个就填map1吧

    在设置完SmRegister表后,我们还需要设置一下SMFIELDINFO这个系统表,因为所有数据集中的字段信息都是存储在这个表中的,可按照aa数据集的样式,在SMFIELDINFO中添加vw_test对应的数据集的信息,SMDATASETID与SmRegister表中的对应。

    4.更改完系统表后,我们可以刷新一下Deskpro中的数据源,此时就可以看到我们创建的数据集了。

  • 相关阅读:
    1.Netty 实战前言
    8.Netty发送对象
    7.Netty中 handler 的执行顺序
    6.高性能NIO框架netty
    5.NIO_ Selector选择器
    4.NIO_Channel 通道
    3.NIO_Buffer缓冲区
    2.Java NIO 简介
    那些堪称神器的 Chrome 插件
    获取当前操作的IFrame 对象的方法
  • 原文地址:https://www.cnblogs.com/emily_fly/p/1493802.html
Copyright © 2020-2023  润新知