【赛迪网-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>
闽公网安备 35060202000074号