Halo Tech

Halo数据库同义词功能演示

Image
Image
同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,HALO数据库将它翻译成对应对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。本文将简单展示一下Halo数据库中新增的同义词相关功能。
一、语法定义

Image

create synonym synonym_name for schema_name.object_name;
二、相关方法演示
2.1、view

视图同义词的创建与调用。

create view oracle.vb as select * from dual;create synonym syn_b for oracle.vb;select * from syn_b;drop synonym syn_b;

Image

2.2、table

表同义词的创建与调用。
create table oracle.tc(a int);create synonym syn_c for oracle.tc;select * from syn_c;insert into syn_c values(1);select * from syn_c;drop synonym syn_c;

Image

2.3、procedure
存储过程同义词创建与调用。
create procedure oracle.protestdas beginraise notice 'oracle.protestd';end;/create synonym syn_d for oracle.protestd;call syn_d;drop synonym syn_d;

Image

2.4、function

函数同义词的创建与调用。

create function oracle.ftestf(a int,b int)return intas beginreturn a + b;end;/create synonym syn_f for oracle.ftestf;select syn_f(25,26);drop synonym syn_f;

Image

2.5、sequence
序列同义词的创建与调用。
CREATE  SEQUENCE oracle.seq_truck_num MINVALUE 1 MAXVALUE 9223372036854775807 INCREMENT BY 1 START with 5258752  CACHE 20;create or replace SYNONYM sy_car_seq_truck_num for oracle.seq_truck_num;select sy_car_seq_truck_num.nextval from dual;drop synonym sy_car_seq_truck_num;

Image

2.6、package
包的同义词的创建与调用。
CREATE OR REPLACE PACKAGE pkg_a ASFUNCTION f_test( f_a IN INTEGER , f_b IN INTEGER ) RETURN INTEGER;PROCEDURE pro_test;END pkg_a;/CREATE OR REPLACE PACKAGE BODY pkg_a ASFUNCTION f_test( f_a IN INTEGER , f_b IN INTEGER )RETURN INTEGERASf_c INTEGER;BEGIN f_c := f_a + f_b;RETURN f_c;END f_test;
PROCEDURE pro_testAS a INTEGER;BEGINa:= pkg_a.f_test(12,13);RAISE NOTICE 'pkg_a.f_test(12,13) = %',a; END pro_test; END pkg_a;/
-- 创建package同义词 create synonym pkggg for pkg_a;
-- 测试调用函数/存储过程DECLARE a INTEGER;BEGIN pkggg.pro_test(); a:=pkggg.f_test(10,13); RAISE NOTICE 'a : %',a;END;/drop synonym pkggg;drop package pkg_a;

Image

好了,至此关于Halo数据库同义词的功能就简单演示完毕了,如文中存在问题,欢迎指正,非常感谢!

end

Image

微信号|Halo Tech