`
liubin2010
  • 浏览: 307870 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Oracle常见问题汇总

阅读更多
1.ora-02085的解决:Database Link与GLOBAL_NAMES参数 
当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。下面做一个测试,在测试中,创建数据库链接的库为XJ(WINDOWS 2003 ORACLE 10g 10.2.0.1),被链接的库为DMDB(LINUX AS5 ORACLE 10g 10.2.0.1 RAC)

首先查看DMDB的相关配置:

SQL> show parameter global_names

NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------
global_names                         boolean     FALSE
SQL> select * from global_name;;

GLOBAL_NAME
----------------------------------------------------------
DMDB

可以看到这个被链接的库其global_names参数为FALSE。

要创建数据库链接的库的配置:

SQL> show parameter global_names

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
global_names                         boolean     FALSE
SQL> select * from global_name;

GLOBAL_NAME
--------------------------------------------------------
XJ

然后做下面的操作:

SQL> create database link test_link connect to test identified by test using 'DMDB';

数据库链接已创建。

SQL> select * from dual@test_link;

D
-
X

可以看到数据库链接工作正常。

在DMDB库上将global_names设为TRUE:

SQL> alter system set global_names=true;

系统已更改。

在XJ库上再次查询,并新建一个DATABASE LINK再进行查询:

SQL> select * from dual@test_link;

D
-
X

SQL> create database link test_link2 connect to test identified by test using 'D
MDB';

数据库链接已创建。

SQL> select * from dual@test_link2;

D
-
X

此时可以看数据库链接工作正常。我们再将XJ库的global_names参数设置为TRUE:

SQL> alter system set global_names=true;

系统已更改。

SQL> select * from dual@test_link2;
select * from dual@test_link2
                   *
第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB

SQL> select * from dual@test_link
select * from dual@test_link
                   *
第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB

而再次将XJ库的global_names设为FALSE,则数据库链接又可用了。
SQL> alter system set global_names=false;

系统已更改。

SQL> select * from dual@test_link;

D
-
X

SQL> select * from dual@test_link2;

D
-
X

再将DMDB库的global_names设为FALSE,数据库链接仍然可用:

在DMDB库上:

SQL> alter system set global_names=false;

系统已更改。

在XJ库上:

SQL> select * from dual@test_link;

D
-
X

可以看到,链接仍然可以用。
如果在DMDB库上创建链接到XJ库上,可以观察到同样的结果。
可以得出一个结论:global_names参数设置为FALSE,影响的是创建数据库链接的那个库对数据库链接的使用。也就是说,如果一个库(实例)的global_names参数设值为TRUE,则该库连接其他库的数据库链接,其名称必须要与被连接的库的global_name相同:

在XJ库上:

SQL> alter system set global_names=true;

系统已更改。

SQL> create database link dmdb connect to test identified by test using 'dmdb';

数据库链接已创建。

SQL> select * from dual@dmdb;

D
-
X
SQL> select * from dual@test_link;
select * from dual@test_link
*
第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK 连接到 DMDB


SQL> select * from dual@test_link2;
select * from dual@test_link2
                   *
第 1 行出现错误:
ORA-02085: 数据库链接 TEST_LINK2 连接到 DMDB

如果在GLOBAL_NAMES设置为TRUE的情况下,如果要建多个数据库链接到同一个库,怎么办呢?因为数据库链接的名称必须与目标库的GLOBAL_NAME相同。可以按如下的方法:

SQL> create database linkdmdb@link1connect to test identified by test using 'dmdb';

数据库链接已创建。

SQL> create database linkdmdb@link2connect to test identified by test using 'dmdb';

数据库链接已创建。

SQL> select * fromdual@dmdb;

D
-
X

SQL> select * fromdual@dmdb@link1;

D
-
X

SQL> select * fromdual@dmdb@link2;

D
-
X

也就是在GLOBAL_NAME后面加上@再加上一个标识。这样就能够创建多个数据库链接到同一目标库上了。

另外在创建数据库链接时,不能给其他SCHEMA创建链接,这是因为数据库链接(database link)其名称可以含有'.'即点号。比如A用户想给B用户创建一个DBLINK名叫LINKB,CREATE DATABASE LINK B.LINKB ......, 这个语句将会实际创建一个A用户下的名为B.LINKB的数据库链接。
2.解决 ORA-01403: no data found 数据未找到
当SQL语句:select P into v_rate from classpoint    where rtrim(classcode) = :new.code; 执行时

如果没有查询到结果就会报错:数据未找到

修改为:

begin
       select P into v_rate from classpoint    where rtrim(classcode) = :new.code;
exception
     when no_data_found then
        v_rate := 1;
end;

就可以了
分享到:
评论

相关推荐

    ORACLE常见问题整理

    ### ORACLE常见问题整理 #### Oracle数据库备份与还原操作 **一、数据库备份** Oracle数据库备份是维护数据库安全稳定运行的重要环节,主要包括两种常见的备份方式: 1. **使用`exp`命令进行备份**:这种方式...

    ORACLE数据库常见问题汇总.doc

    ORACLE数据库常见问题汇总.doc

    Oracle BIEE常见问题解决办法汇总

    Oracle BIEE 常见问题解决办法汇总 问题1:提示组合 * 添加筛选器选择对应的列 * 在筛选器属性页面,运算符中选择提示 知识点: 在 Oracle BIEE 中,添加筛选器可以根据需要选择对应的列,并在筛选器属性页面中...

    oracle迁移达梦常见问题汇总

    本文主要结合之前一次oracle迁移达梦的项目,将碰到的问题以及一系列踩过的坑列举出来供大家参考,数据库版本是达梦7。(本文中涉及到的部分对象名已用sch1,tab1等方式替换) 1、整体情况 迁移过程中失败任务数低于5%...

    Oracle常见问题解决方案汇总

    以上就是Oracle常见问题及其解决方案的汇总。希望本文的内容能够帮助到学习或工作中遇到Oracle数据库问题的朋友们,为大家提供一定的参考价值。同时,我们也鼓励大家对Oracle数据库的维护和管理持续学习和深入研究,...

    常见oracle问题的总结

    常见的oracle问题汇总,如下所示: 1. Oracle安裝完成后的初始口令? 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? 3. oracle 8.0.5怎么创建数据库? 4. oracle 8.1.7怎么创建数据库? 10. 用什么语句查询字段呢? ...

    oracle biee常见问题解答

    ### Oracle BIEE 常见问题解答 #### 一、仪表板操作与配置 **1. 仪表板分组下拉显示** - **解决办法**:为了实现仪表板分组下拉显示的功能,需要对`instanceconfig.xml`进行配置。具体来说,在此配置文件中加入`...

    Oracle常见用法

    以下是对Oracle中一些常见用法的详细说明: **SQL查询语句**: SQL(Structured Query Language)是用于管理和处理关系数据库的标准语言。在Oracle中,`SELECT`语句是最基本的查询命令,用于从数据库中检索数据。 ...

    Oracle常见问题与解决方案简介.pptx

    本篇主要探讨Oracle在不同模块中常见的问题及相应的解决方案。 首先,我们来看OM(Order Management)模块,这是处理订单管理和发运的主要部分。在OM模块中,问题常常涉及到库存管理、订单处理和发票创建。 1. 当...

    数据库常见问题汇总

    数据库常见问题汇总 很多常见的ora错误解决方案

    Oracle常见函数集锦

    本篇文章将深入探讨“Oracle常见函数集锦”,主要关注在SQL查询中常用的Oracle函数,这些函数对于数据分析师、数据库管理员以及开发人员来说至关重要。 1. **字符串函数** - `CONCAT()`:用于连接两个或多个字符串...

    streamsets数据采集常见问题汇总1

    在使用Streamsets 2.6.0.1版本时,可能会遇到一系列问题,特别是与Oracle数据库集成时。以下是对这些问题的详细解释和解决方法: 1. **执行任务时有表空间的问题** 使用场景:在从Oracle数据库导出数据时。 问题...

    oracle层次汇总存储过程

    Oracle层次汇总存储过程是Oracle数据库中用于处理层级数据的一种高效技术。在数据库设计中,层级数据常见于组织结构、产品目录、地理位置等场景。Oracle提供了几种处理层级数据的方法,包括自连接、递归子查询、...

    Oracle和PLSQL的安装以及问题汇总

    ### Oracle和PLSQL的安装及常见问题解决方案 #### 一、安装步骤概述 根据提供的文件信息,本篇文章将详细介绍如何安装32位Oracle数据服务及其客户端,并安装32位PLSQL,以及解决安装过程中可能遇到的一些问题。 #...

    Oracle Exception汇总(自定义Oracle异常)

    15. **STORAGE_ERROR** (内存问题): 当PL/SQL块在运行时耗尽内存或遇到内存损坏时,Oracle会抛出此异常。优化代码以减少内存消耗,或增加系统资源。 16. **SUBSCRIPT_BEYOND_COUNT** (ORA-06533): 当尝试访问嵌套表...

    Oracle内部培训汇总

    这在解决复杂查询或特定场景下的性能问题时很有用,但过度依赖HINTs可能会降低系统的可维护性。 5. **索引(INDEX)**:索引是提升查询速度的关键。B树索引、位图索引、函数索引等都是常见的类型。合理创建和使用...

    ORACLE常见SET命令

    oralce常用的set命令汇总,需要的可以下载看看。

    大数据Oracle理论+SQL+面试问题汇总+BI理论

    面试问题汇总部分,课程收集了常见的Oracle开发和BI面试问题,包括数据库设计、性能优化、故障排查等,帮助学员提前准备,提升面试成功率。 最后,BI理论知识部分涉及数据仓库和ETL(提取、转换、加载)流程。这一...

Global site tag (gtag.js) - Google Analytics