频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

在Oracle 10g中建立没有域名的DB_LINK

来源:pcdog 作者:佚名 出处:巧巧读书 2008-03-21 进入讨论组

    在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>

更多文章 更多内容请看Oracle 10g基础应用专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章