[Q]执行exec dbms_logmnr_d.build('Logminer.ora','file directory'),提示下标超界,怎么办
[A]完整错误信息如下,
SQL> exec dbms_logmnr_d.build('Logminer.ora','file directory')
BEGIN dbms_logmnr_d.build('Logminer.ora','file directory'); END;
*
ERROR 位于第 1 行:
ORA-06532: 下标超出限制
ORA-06512: 在"SYS.DBMS_LOGMNR_D", line 793
ORA-06512: 在line 1
解决办法为:
1.编辑位于"$ORACLE_HOME/rdbms/admin"目录下的文件"dbmslmd.sql"
改变行:
TYPE col_desc_array IS VARRAY(513) OF col_description;
为
TYPE col_desc_array IS VARRAY(700) OF col_description;
并保存文件
2. 运行改变后的脚本
SQLPLUS> Connect internal
SQLPLUS> @$ORACLE_HOME/rdbms/admin/dbmslmd.sql
3.重新编译该包
SQLPLUS> alter package DBMS_LOGMNR_D compile body;
[Q]执行execute dbms_logmnr.start_logmnr(DictFileName=>'DictFileName')提示ORA-01843:无效的月份,这个是什么原因
[A]我们分析start_logmnr包
PROCEDURE start_logmnr(
startScn IN NUMBER default 0 ,
endScn IN NUMBER default 0,
startTime IN DATE default TO_DATE('01-jan-1988','DD-MON-YYYY'),
endTime IN DATE default TO_DATE('01-jan-2988','DD-MON-YYYY'),
DictFileName IN VARCHAR2 default '',
Options IN BINARY_INTEGER default 0 );
可以知道,如果TO_DATE('01-jan-1988','DD-MON-YYYY')失败,将导致以上错误
所以解决办法可以为
1、Alter session set NLS_LANGUAGE=American
2、用类似如下的方法执行
execute dbms_logmnr.start_logmnr (DictFileName=> 'f:\temp2\TESTDICT.ora', starttime => TO_DATE(
'01-01-1988','DD-MM-YYYY'), endTime=>TO_DATE('01-01-2988','DD-MM-YYYY'));
[B]第四部分、性能调整[/B]
[Q]如果设置自动跟踪
[A]用system登录
执行$ORACLE_HOME/rdbms/admin/utlplan.sql创建计划表
执行$ORACLE_HOME/rdbms/admin/plustrce.sql创建plustrace角色
如果想计划表让每个用户都能使用,则
SQL>create public synonym plan_table for plan_table;
SQL> grant all on plan_table to public;
如果想让自动跟踪的角色让每个用户都能使用,则
SQL> grant plustrace to public;
通过如下语句开启/停止跟踪
SET AUTOTRACE ON |OFF
| ON EXPLAIN | ON STATISTICS | TRACEONLY | TRACEONLY EXPLAIN
分享到:
相关推荐
### SQL 16进制转10进制 #### 知识点概述 本文将详细介绍如何在SQL中实现从十六进制数值到十进制数值的转换。此过程涉及SQL中的字符串操作、数学运算以及条件判断等技术要点。通过本文的学习,读者可以深入理解SQL...
### SQL 16 进制转换为 10 进制 #### 背景介绍 在数据库管理和软件开发过程中,经常需要处理不同进制之间的数值转换问题。尤其是在处理存储在数据库中的数据时,有时会遇到需要将16进制表示的数据转换成10进制形式...
根据提供的标题、描述、标签及部分内容,我们可以了解到这篇文章主要讲述的是如何在SQL环境中将十六进制数字转换为十进制数字。接下来,我们将详细解析这一过程,并解释每一部分的功能与实现方式。 ### 一、创建...
### SQL脚本函数:16进制转换为10进制 #### 背景介绍 在数据库管理和软件开发过程中,经常需要处理不同进制之间的数值转换问题。尤其是在处理网络协议、加密算法或是数据存储格式时,十六进制与十进制之间的转换...
在转换为十进制之后,我们可以使用`HEX`函数(在某些系统中可能为`CONVERT(VARBINARY, ..., 16)`)将数字转换为十六进制。例如: ```sql SELECT HEX(OCT_TO_NUM('77')); ``` 这将返回十六进制字符串`43`,因为`63`...
这个名为"16进制转换工具 SQL注入学习小工具 学习"的压缩包显然是为那些想要深入理解SQL注入攻击和提升16进制转换能力的学习者准备的。下面我们将详细探讨这两个关键知识点。 首先,16进制(Hexadecimal)是一种逢...
16新特性: 1.权限管理 2.逻辑复制增强功能 3.性能提升:并行查询方面的性能提升,比如允许FULL和RIGHT JION在并行模式下执行,支持SIMD 4.全面的监控功能
16进制转换在SQL注入中扮演着重要角色,因为某些特殊字符在转成16进制后可以绕过过滤机制,使得攻击更加隐蔽。 16进制转换工具是为了帮助安全研究人员或开发人员理解和测试SQL注入漏洞而设计的。这类工具能够将字符...
SQLPrompt for SQLServer2016 智能提示插件 SQL2016 提示 SQLPrompt最新版本 绿色版 SQL Prompt 是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动...
SQL脚本文件 gmall2020-03-16.sql
在IT领域,尤其是在数据库管理与开发中,SQL脚本函数是实现特定功能的强大工具。本文将深入探讨一种特定的SQL脚本函数——十进制数转换为十六进制数的功能,这一过程对于处理数据、加密解密以及色彩代码等领域尤为...
在SQL Server环境中,有时我们需要处理含有特殊字符的字符串,这些字符串可能是通过JavaScript的`escape`函数编码过的。JavaScript的`escape`函数用于编码URL、非ASCII字符和其他特殊字符,以便在网络上传输。当我们...
SQL Server 2005中的触发器是一种数据库对象,它允许开发者在特定的数据库操作(如INSERT、UPDATE或DELETE)发生时执行自定义的SQL代码。这些操作被称为DML(数据操纵语言)事件,触发器则提供了对这些事件的响应...
16.SQL Server 2014 BETWEEN语法.mp4 17.SQL Server 2014子查询IN.mp4 18.SQL Server 2014子查询EXISTS.mp4 19.SQL Server 2014返回记录排序.mp4 2.SQL Server 2014硬件和软件要求.mp4 20.SQL Server 2014关联...
SQL 查询语言及其使用
SQL Server客户端连接工具是数据库管理员和开发人员用来与Microsoft SQL Server进行交互的重要工具。它提供了图形用户界面(GUI)和命令行选项,使得用户能够轻松地执行查询、管理数据库对象以及进行其他数据库维护...
在开发数据库应用程序时,SQL语句是至关重要的工具,用于查询、插入、更新和删除数据库中的数据。本文将深入探讨SQL语句命令及其在数据库操作中的应用,特别是使用ADO.NET框架进行数据库交互。 首先,我们需要了解...
SQL进制转换函数,方便快捷,希望能够帮到各位老铁。。。。。。。。。。。。。。。。。。
这套"SQL试题16套(全部有准确答案,有上百页)"是学习和巩固SQL知识的宝贵资源,涵盖了广泛的SQL概念和操作,包括数据查询、数据更新、表间操作、聚合函数、子查询、视图、存储过程等核心内容。 首先,SQL的基础...