Crodys 使用Oracle同义词解决方案

以展现流程业务信息列表为例,介绍使用Oracle同义词解决方案。

在Oracle数据库BPM_SUN用户中有如下对象:

对象名称 类型 说明
sun_biz_base table
sub_focusprocess table
sub_biz_info synonym create synonym SUN_BIZ_INFO for BPM_MANAGER.BIZ_INFO;

查询列表SQL语句如下所示:

select a.title,to_char(a.live_date,‘yyyy-mm-dd‘),b.endflow
from sun_biz_info a,sun_biz_base b
where a.info_id = b.info_id and a.rvsn_number=b.rvsn_number;

查询结果如下:

同义词使用解决方案

在数据源(Database MateData)中,Oracle数据库对象只有:Tables、Views、Procedures三种,无同义词Synonyms选项。

怎样能使用同义词(Synonyms)呢?

在创建Webservice时,先选择可见的某个或几个数据库中的表,如上图例所示选择了SUN_BIZ_BASE和SUN_FOCUSPROCESS两个表。

新建自定义Webservice,名称为:QueryBizList

通过WS-AppServer Package工具,生成如下Java代码,再通过同步代码到SVN,基于Eclipse开发工具,编写涉及到同义词SQL语句代码。

/*
  This class has been generated by the Code Generator
*/

package com.unicom.sun.sunpackage;

import com.cordys.cpc.bsf.busobject.BusObjectConfig;
import com.cordys.cpc.bsf.busobject.QueryObject;

public class SUN_BIZ_BASE extends SUN_BIZ_BASEBase
{
    public SUN_BIZ_BASE()
    {
        this((BusObjectConfig)null);
    }

    public SUN_BIZ_BASE(BusObjectConfig config)
    {
        super(config);
    }

    public static String QueryBizList()
    {
        String sql="select a.title,to_char(a.live_date,‘yyyy-mm-dd‘),b.endflow ";
        sql += " from sun_biz_info a,sun_biz_base b ";
        sql += " where a.info_id = b.info_id and a.rvsn_number=b.rvsn_number";

        QueryObject query = new QueryObject(sql);
        // TODO implement body
        return query.getObject().toString();
    }
}

注:上述SQL语句中,“表”sun_biz_info是同义词。

通过SVN把Java代码导回Cordys平台,编译代码并发布及发布Webservice,使用Webservice测试工具Operation Test Tool,测试结果如下:

结论

通过本次验证,实现了在Cordys平台上使用Oracle同义词技术方案,结论如下:

  • 1.私有同义词与公有同义词没有区别;
  • 2.Database Metadata 中并不提供针对同义词的服务,也不会把同义词识别为表。也就是说,不能通过Database Metadata 直接为同义词创建method;
  • 3.使用同义词就是首先通过其他表(Tables)创建method,然后修改这个method的SQL语句,改为对同义词的操作。

由于作者水平有限,欢迎反馈讨论。

相关文档:Oracle同义词简明用法 肖永威 2015.5

时间: 05-24

Crodys 使用Oracle同义词解决方案的相关文章

[转]oracle 同义词 synonym

本文转自:http://blog.csdn.net/generalfu/article/details/7906561 同义词定义 当一个用户想访问另外一个用户的表时, 需要在表前加用户名,总加表名不方便, 为此可以为用户名.表名起个小名别名, 以方便访问,此别名就是同义词.创建同义词 create synonym  同义词名  for 用户名.表名称; 删除同义词 drop  synonym  syn_name; 测试实例 --没有创建同义词之前 [sql] view plaincopypri

Oracle同义词概念

Oracle同义词 Oracle的同义词(synonyms)跟View功能类似,但更强大.在Oracle数据库中的大部分数据库对象,如表.视图.物化视图.序列.函数.存储过程.包.同义词等等都可以做为同义词.其目的主要有2个:用于简化对象访问和提高对象访问的安全性. 下面简单做个演示: SQL> conn scott/tiger Connected. SQL> create table test1 (id number); Table created. SQL> insert into

Oracle备份解决方案

备份解决方案 使用以下方法可执行备份: Recovery Manager Oracle Secure Backup 用户管理的备份 Recovery Manager (RMAN) 是推荐使用的 Oracle DB 备份方法.Oracle Secure Backup 通过添加了备份到磁带功能和网络备份功能,补充了现有功能.用户管理的备份是基于脚本的,因此 DBA 必须编写脚本.这种方法正逐渐被淘汰,因为它需要较多的人工.Oracle Secure Backup Oracle Secure Back

oracle同义词 转

1.为啥要用同义词: 同义词,顾名思义就是两个词的意思一样,可以互相替换.那它的作用有哪些呢: a一个最明显的目的就是简化sql.如果某个数据库对象的名字太长了,可以创建一个短一点的同义词.就相当于是缩写呗. b.另外一个目的是隐藏一些对象的信息.比如查找另一个 schema中的某个表,需要在表名前加schema名做为前缀.如果创建一个同义词就可以隐藏schema信息. 2.怎么创建同义词. 语法:CREATE [OR REPLACE] [PUBLIC] SYNONYM synonym_name

[Oracle]同义词(synonym)

(一)同义词的概念 同义词是数据库中表.视图.索引或其他模式对象的别名,与视图相似,同义词不占用实际的存储空间,在数据字典中只存同义词的定义. 在开发数据库时,应尽量避免直接引用表.视图或其他数据库对象,否则,当表的结构发生了改变,就会影响应用程序的使用,这个时候需要重新编译程序,如果为数据库对象创建了同义词,就可以在程序中使用同义词,这样表的结构发生变化,也不会影响到应用程序.此外,运用同义词还可以隐藏数据库对象名称以及对象所有者的信息,还可以简化对数据库对象的访问. (二)同义词分类 同义词

oracle同义词

--私有同义词--私有同义词权限grant create synonym to scott;--创建私有同义词create synonym dp for scott.dept;--将查询dept的权限授予qjt这个用户GRANT SELECT ON dept to QJT --公有同义词--公有同义词权限grant create PUBLIC synonym to scott;--创建公有同义词create PUBLIC synonym dpp for scott.dept;--将查询dept的

oracle同义词语句备份

--创建同义词create synonym T_SYSTEM_USERDEPARTMENT for xtzl.T_SYSTEM_USERDEPARTMENT;--查询同义词SELECT * FROM SYS.ALL_SYNONYMS WHERE SYNONYM_NAME='T_SYSTEM_POST';--查询当前用户下的同义词select * from user_synonyms;--授权查询 grant select on tabel1 to secmgt--撤销权限:revoke inse

ORACLE 博客文章目录(2015

从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理.归纳分类,方便自己和大家查看.翻阅.  ORACLE数据类型 ORACLE基本数据类型总结 ORACLE VARCHAR2最大长度问题 ORACLE数据库汉字占几个字节问题 ORACLE NUMBER类型Scale为0引发的问题 PL/SQL语法学习 PLSQL 调试触发器 PL/SQL重新编译包

深入理解Oracle RAC 12c

深入理解Oracle RAC 12c(顶尖专家权威指南唯一最新版数据库著作 Oracle第一社区技术大牛翻译 Amazon五星推荐) [美]Syed Jaffar Hussain(赛义德 贾法尔 侯赛因),Tariq Farooq(塔里克 法鲁克),Riyaj Shamsudeen(瑞亚吉沙姆斯丁),Kai Yu(于凯) 著   赵燚 梁涛 程飞 李真旭 译 ISBN 978-7-121-24066-9 2014年10月出版 定价:99.00元 488页 16开 编辑推荐 <深入理解 Oracl

Oracle事务和常用数据对象

防伪码:一寸光阴一寸金 前言:本次内容的相关知识点我们在学习sqlserver2008R2的时候介绍过一些,包括:事务.索引.视图等.那么今天我们学习在oracle上实现这些重要的内容,以实现数据库的优化. 一.事务 1.简介 事务是数据处理的核心,是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败.DBMS通过事务的管理来协调用户的并发行为,减少用户访问资源的冲突. 1)显示提交:当事务遇到COMMIT指令时,将结束事务并永久保存所有的更改的数据. 2)显示回滚