服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

在oracle 10g中建立没有域名的db_link

【赛迪网-it技术报道】在oracle 10g中建立没有域名的db_link:

记录如下:

--用alter语句这种修改方法,重启数据库,无效!

alter database rename global_name to orcl;

--用alter语句这种修改方法,重启数据库,有效!但是不是我想要的结果,虽然域名修改后变短了,但是建立db_link还有域名存在!

alter database rename global_name to orcl.qiangguo.com;

--用update语句这种修改方法,重启数据库,有效!创建db_link没有域名存在!

update global_name set global_name='orcl';

microsoft windows [版本 5.2.3790]

(c) 版权所有 1985-2003 microsoft corp.

c:\documents and settings\administrator>sqlplus "/ as sysdba"

sql*plus: release 10.2.0.1.0 - production on 星期三 3月 19 14:22:37 2008

copyright (c) 1982, 2005, oracle. all rights reserved.

连接到:

oracle database 10g enterprise edition release 10.2.0.1.0 - production

with the partitioning, olap and data mining options

sql> show parameter global_name;

name type value

------------------------------------ ----------- ------------------------------

global_names boolean false

sql> show parameter global_name

name type value

------------------------------------ ----------- ------------------------------

global_names boolean false

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl.regress.rdbms.dev.us.oracle.com

sql> alter database rename global_name to orcl;

数据库已更改。

sql> select * from global_name; --在这里可以看到,把global_name直接修改为“orcl”,并不起作用!

global_name

--------------------------------------------------------------------------------

orcl.regress.rdbms.dev.us.oracle.com

sql> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

oracle 例程已经关闭。

sql> startup

oracle 例程已经启动。

total system global area 289406976 bytes

fixed size 1248576 bytes

variable size 134218432 bytes

database buffers 146800640 bytes

redo buffers 7139328 bytes

数据库装载完毕。

数据库已经打开。

sql> select * from global_name; ---重启数据库后,仍然不起作用,global_name并没有变成我想要的“orcl”!

global_name

--------------------------------------------------------------------------------

orcl.regress.rdbms.dev.us.oracle.com

sql> alter database rename global_name to orcl.qiangguo.com; --如果修改为带域名的“orcl.qiangguo.com”,重启数据库将起作用,域名发生了变化!

数据库已更改。

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl.qiangguo.com

sql> alter database rename global_name to orcl; --再次试着修改为”orcl“,仍然不行!

数据库已更改。

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl.ahdx.com

sql> update global_name set global_name='orcl'; --如果用update语句修改,重启数据库,成功!哈哈!

已更新 1 行。

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl

sql> commit;

提交完成。

sql> shutdown immediate

数据库已经关闭。

已经卸载数据库。

oracle 例程已经关闭。

sql> startup

oracle 例程已经启动。

total system global area 289406976 bytes

fixed size 1248576 bytes

variable size 134218432 bytes

database buffers 146800640 bytes

redo buffers 7139328 bytes

数据库装载完毕。

数据库已经打开。

sql> select * from global_name;--如果用update语句修改,重启数据库,成功!哈哈!

global_name

--------------------------------------------------------------------------------

orcl

sql>

分析一下:global_name视图

创建global_name视图的语句如下:

create or replace view global_name

as

select value$ from sys.props$ where name = 'global_db_name'

不能直接修改sys.props$内部表,会告诉你权限不足!

所以可以用update修改!

验证如下:

sql> select * from global_name;

global_name

--------------------------------------------------------------------------------

orcl

sql> select value$ from sys.props$ where name = 'global_db_name';

value$

--------------------------------------------------------------------------------

orcl

sql>

扫描关注微信公众号