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

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

人物A 回复
这是回复
人物B 回复
我回复你了
人物A 回复
回复已收到