oracle报错怎么查 查看oracle报错日志

oracle 看报错日志怎么看

首先了解什么是外部表,与其它表的区别,建立一个简单的外部表(主要看操作过程),最后我们用外部表查看ORACLE报警日志

为兴平等地区用户提供了全套网页设计制作服务,及兴平网站建设行业解决方案。主营业务为成都做网站、成都网站建设、成都外贸网站建设、兴平网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

1.了解oracle外部表

外部表定义:结构被存放在数据字典,而表数据被放在OS文件中的表

作用:在数据库中查询OS文件的数据,还可以将OS文件数据装载到数据库中

与其它表的区别:在外部表上不能执行DML操作,也不能在外部表上建索引,只能执行select操用

2.建一个简单的外部表1.建一个OS上的文件

因为外部表主要是查看OS上的文件,首先在OS上建一个文件

mkdir -p /oracle/ext

vi /oracle/ext/ext.dat

10,20,30

40,50,60

70,80,90

2.授予用户权限,并建立目录对象

在此我们先建一个新用户

create user test identified by “123” default tablespace test quota unlimited on test;

用户授权

SQL grant create any directory to test;

建立目录对象

SQL conn test / 123

Connected.

SQL create directory ext as '/oracle/ext';

Directory created.

3.建立外部表

SQL create table exttable(

id number,name varchar2(10),i number

)organization external

(type oracle_loader

default directory ext

access parameters

(records delimited by newline

fields terminated by ','

)location('ext.dat')

);

4.测试

SQL select * from exttable;

ID NAMEI

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

10 20 30

40 50 60

70 80 90

测试成功,可见在数据库中可以查询OS文件的数据

2. 使用外部表查看oracle报警日志

由于在上面实验中已建立了一个用户,并赋相应的权限,而且也有了OS文件(即报警文件alert_SID.log),所以在此直接建立目录对象并建立外部表就可以了。

1.建立目录对象

SQL conn test / 123

Connected.

SQL create directory bdump as '/oracle/u01/app/oracle/admin/db2/bdump';

Directory created.

2.建立外部表

SQL create table alert_log(

text varchar2(400)

)organization external

(type oracle_loader

default directory bdump

access parameters

(records delimited by newline

)location('alert_db2.log')

);

3.测试

首先查看能否查到alert_db2.log的内容

SQL select * from alert_log where rownum 10;

TEXT

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

Thu Jun 11 00:51:46 2009

Starting ORACLE instance (normal)

Cannot determine all dependent dynamic libraries for /proc/self/exe

Unable to find dynamic library libocr10.so in search paths

RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/a

de/aime1_build2101/oracle/has/lib/:

LD_LIBRARY_PATH is not set!

The default library directories are /lib and /usr/lib

Unable to find dynamic library libocrb10.so in search paths

Unable to find dynamic library libocrutl10.so in search paths

9 rows selected.

测试成功

然后我们测试查报警信息’ORA-%’

SQL select * from alert_log where text like 'ORA-%';

TEXT

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

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27037: unable to obtain file status

ORA-205 signalled during: ALTER DATABASE MOUNT…

ORA-00301: error in adding log file '/home/oracle/oracle/oradata/testdb/redo01.l

og' - file cannot be created

ORA-27040: file create error

ORA-1501 signalled during: CREATE DATABASE db2

ORA-00200: control file could not be created

TEXT

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

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27038: created file already exists

ORA-1501 signalled during: CREATE DATABASE db2

ORA-00200: control file could not be created

ORA-00202: control file: '/oracle/u01/app/oracle/product/10.2.0/db2/dbs/cntrldb2

.dbf'

ORA-27038: created file already exists

ORA-1501 signalled during: CREATE DATABASE db2

测试成功,

可见我们可以使用外部表来方便的查看ORACLE的报警信息

这个Oracle查询为什么会报错:ora-01821 Date format not recognized

Oracle查询报错:ora-01821 Date format not recognized是设置错误造成的,解决方法为:

1、登录ORACLE数据库,在服务器使用tnsping gshx2cs。

2、TNS的配置文件为tnsnames.ora,目录一般为$ORACLE_HOME/network/admin

3、按照如图格式修改TNS串,配置对应的ip,端口以及实例名。

4、修改后重新测试,发现实例已经可以正常解析。

Oracle报错ORA-01722: 无效数字排查解决方案

在做报表系统的过程中,遇到了一个很有意思的问题,就是Oracle报了一个错 java.sql.SQLException: ORA-01722: 无效数字 ,正常来说,报该错就意味着数据类型不匹配,但是因为同一sql语句,多加了一个条件,就查出结果,不加条件,反而报错,所以就意味着,可能数据有误(或者语句有误),但是哪一条数据有误,肉眼难以识别!

有一个机构表,存10个机构, is_use=‘0’ 意味着无效,不统计, is_use=‘1’ 意味着有效,参与统计,先看sql:

这个是公共的sql部分,往后添加条件,即可查相应结果:

查昆明能查出结果,但是查云南的时候,就报错,所以一怒之下,把ynCheckSql语句结果查出来,一条一条检验,还真发现了问题:

针对德宏这一个地方,查询的时候报了 ORA-01722: 无效数字 错误,仔细查看数据源,发现数据也没什么问题,因为计算过程中,会报除数不能为0的错,而该条数据有一个值( 该值是分母,也就是除数 ),我们都知道,除数不能为0,所以Oracle针对除数为0的情况,有一个函数:

所以为了直接返回结果,除数为0时直接返回 - 如这个sql语句: ROUND(DECODE(ba.personal_plan,0,'-',(r.p5_year_inc+r.p6_year_inc+r.p7_year_inc+r.p8_year_inc+r.p9_year_inc+r.p10_year_inc)/ba.personal_plan*100),3) perPlan

我们都知道ROUND函数是保留小数位数,如果返回 - ,ROUND函数肯定会包无效数字错误,所以如果除数为0,直接返回特殊字符9999即可,后面再对9999进行单独处理!!

oracle安装报错问题

一 . centos 安装oracle 报Checking swap space: 0 MB available, 150 MB required.    Failed

  文章链接:

1 系统环境

centos 6.5

oracle 11g

内存 16G

硬盘 ssd 250G

2 运行安装命令:

[oracle@localhost database]$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.  Actual 150565 MB    Passed

Checking swap space: 0 MB available, 150 MB required.    Failed

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,

Exiting Oracle Universal Installer, log for this session can be found at /tmp/OraInstall2017-06-07_02-08-39PM/installActions2017-06-07_02-08-39PM.log

解决方法:

1、检查 Swap 空间在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。运行以下命令:

swapon -s

如果返回的信息概要是空的,则表示 Swap 文件不存在。

2、检查文件系统在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df-hal

3、创建并允许 Swap 文件下面使用 dd 命令来创建 Swap 文件。检查返回的信息,还剩余足够的硬盘空间即可。

dd    if=/dev/zero of=/swapfile bs=1024count=512k

参数解读:if=文件名:输入文件名,缺省为标准输入。即指定源文件。 if=input file

of=文件名:输出文件名,缺省为标准输出。即指定目的文件。 of=output file

bs=bytes:同时设置读入/输出的块大小为bytes个字节count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、格式化并激活 Swap 文件上面已经创建好 Swap 文件,还需要格式化后才能使用。 运行命令 :

mkswap /swapfile

激活 Swap , 运行命令 :

swapon /swapfile

以上步骤做完,再次 运行命令 :

swapon -s

你会发现返回的信息概要:

Filename                Type        Size    Used    Priority

如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。用 vim 打开 /etc/fstab 文件,在其最后添加如下一行:

/swapfile        swap            swap    defaults00

最后,赋予 Swap 文件适当的权限:

chown    root:root    /swapfile

chmod   0600     /swapfile

二 . Could not execute auto check for display colors using command /usr/bin/xdpyinfo. Check if the DISPLAY variable is set.    Failed

oracle错误:ORA-00920: 无效的关系运算符,请问应该怎么解决?

oracle错误:ORA-00920: 无效的关系运算符是运算符使用错误造成的,解决方法为:

1、双击plsql developer软件,进行连接数据库。

2、在命令窗口中先进行简单查询,并不进行限定查询,如下图。

3、限定查询其实就是where子句,逻辑运算符就是and or not,在查询的时候对输出结果进行定制查询,因为当表的数据量非常大的时候,直接使用简单查询有效率会非常的低,特别在是查询大表数据的时候,如下图查看sh用户下其中一张表的数据。

4、因为数据量非常的大所以在查询的时候非常有必要进行限定查询,在限定查询的时候条件尽量要精确,如下图因为条件不太精确导致查询的时候也非常的长。

5、同时在进行限定查询的时候可以使用and or not等运算符,如下图可以看到在使用了逻辑运算符之后查询数据更加精确,效率也更高效,在使用and的时候要求两边的条件都必须满足才可以。

6、在使用逻辑运算符or的时候,只要两边的条件有一个满足就可以进行相应的查询,如下图。


分享标题:oracle报错怎么查 查看oracle报错日志
当前URL:http://myzitong.com/article/hhhigd.html