oracle dbms_utility.get_time,dbms_utility如何使用?
dbms_utility包含许多杂类的功能。
我以前看过一个连接,
http://tamimdba.wordpress.com/tag/dbms_utility/
PL/SQL Packages DBMS_UTILITY
November 14, 2009 Tamim Khan Leave a comment
PL/SQL Packages DBMS_UTILITY
Source : {ORACLE_HOME}/rdbms/admin/dbmsutil.sql
COMPILE_SCHEMA Compile all procedures, functions, packages, and triggers in the specified schema.
Syntax
DBMS_UTILITY.COMPILE_SCHEMA (
schema VARCHAR2);
Code examples
EXEC DBMS_UTILITY.compile_schema('SCOTT');
ANALYZE_SCHEMA Analyze all the tables, clusters, and indexes in a schema.
Syntax
DBMS_UTILITY.ANALYZE_SCHEMA (
schema VARCHAR2,
method VARCHAR2,
estimate_rows NUMBER DEFAULT NULL,
estimate_percent NUMBER DEFAULT NULL,
method_opt VARCHAR2 DEFAULT NULL);
Code examples
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','COMPUTE');
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','ESTIMATE', estimate_rows => 1000);
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','ESTIMATE', estimate_percent => 25);
exec DBMS_UTILITY.ANALYZE_SCHEMA('SCOTT','DELETE')
[N.B: Do not collect stats for either the SYS or SYSTEM schemas.]
ANALYZE_DATABASE Analyze all the tables, clusters, and indexes in a database.
Syntax
DBMS_UTILITY.ANALYZE_DATABASE (
method VARCHAR2,
estimate_rows NUMBER DEFAULT NULL,
estimate_percent NUMBER DEFAULT NULL,
method_opt VARCHAR2 DEFAULT NULL);
Code examples
exec DBMS_UTILITY.ANALYZE_DATABASE('COMPUTE');
ANALYZE_PART_OBJECT Equivalent to ANALYZE_DATABASE use for partition table.
Syntax
dbms_utility.analyze_part_object (
schema IN VARCHAR2 DEFAULT NULL,
object_name IN VARCHAR2 DEFAULT NULL,
object_type IN CHAR DEFAULT 'T',
command_type IN CHAR DEFAULT 'E',
command_opt IN VARCHAR2 DEFAULT NULL,
sample_clause IN VARCHAR2 DEFAULT 'sample 5 percent');
Code examples
--assumes a partitioned table named 'part_tab'
exec dbms_utility.analyze_part_object('UWCLASS', 'PART_TAB', 'T', 'E', 'V');
FORMAT_ERROR_STACK Function Format the current error stack.
Syntax
DBMS_UTILITY.FORMAT_CALL_STACK
RETURN VARCHAR2;
Code examples
CREATE TABLE error_log (
timestamp DATE,
username VARCHAR2(30),
instance NUMBER,
database_name VARCHAR2(50),
error_stack VARCHAR2(2000)
);
CREATE OR REPLACE TRIGGER LogErrors
AFTER SERVERERROR ON DATABASE
BEGIN
INSERT INTO error_log
VALUES (SYSDATE, SYS.LOGIN_USER, SYS.INSTANCE_NUM, SYS.DATABASE_NAME, DBMS_UTILITY.FORMAT_ERROR_STACK);
END LogErrors;
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE In Oracle Database 10g, Oracle added DBMS_UTILITY.FORMAT_ERROR_BACKTRACE, which can and should be called in your exception handler. It displays the call stack at the point where an exception was raised, even if the function is called in a PL/SQL block in an outer scope from that where the exception was raised. Thus, you can call DBMS_UTILITY.FORMAT_ERROR_BACKTRACE within an exception section at the top level of your stack and still find out where the error was raised deep within the call stack.
Syntax
DBMS_UTILITY. FORMAT_ERROR_BACKTRACE
RETURN VARCHAR2;
FORMAT_CALL_STACK Function Format the current call stack.
Code examples
CREATE OR REPLACE PROCEDURE error_test1 AS
BEGIN
RAISE VALUE_ERROR;
END error_test1;
/
CREATE OR REPLACE PROCEDURE error_test2 AS
BEGIN
error_test1;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('FORMAT_CALL_STACK ->' || DBMS_UTILITY.FORMAT_CALL_STACK);
DBMS_OUTPUT.PUT_LINE('FORMAT_ERROR_STACK->' || DBMS_UTILITY.FORMAT_ERROR_STACK);
END error_test2;
/
SQL> SET SERVEROUTPUT ON
SQL> exec error_test2
FORMAT_CALL_STACK ->----- PL/SQL Call Stack -----
object line object
handle number name
2F226BE0 6 procedure SYSTEM.ERROR_TEST2
2F222E7C 1 anonymous block
FORMAT_ERROR_STACK->ORA-06502: PL/SQL: numeric or value error
PL/SQL procedure successfully completed.
IS_CLUSTER_DATABASE Function Is this database running in cluster database mode.
Syntax
DBMS_UTILITY.IS_CLUSTER_DATABASE
RETURN NUMBER;
Code examples
SET SERVEROUTPUT ON
BEGIN
IF DBMS_UTILITY.is_cluster_database THEN
dbms_output.put_line('Clustered');
ELSE
dbms_output.put_line('Not Clustered');
END IF;
END;
/
GET_TIME Function Current time in 100th’s of a second.
Syntax
DBMS_UTILITY.GET_TIME
RETURN NUMBER;
Code examples
BEGIN
dbms_output.put_line( 'Start Time: ' || dbms_utility.get_time );
dbms_lock.sleep(seconds => 10);
dbms_output.put_line( 'End Time: ' || dbms_utility.get_time );
END;
/
Start Time: 1119218
End Time: 1120218
PORT_STRING Function Return a string that uniquely identifies the version of Oracle and the operating system.
Syntax
DBMS_UTILITY.PORT_STRING
RETURN VARCHAR2;
Code examples
SELECT DBMS_UTILITY.port_string
FROM dual;
DB_VERSION Version information for the database.
Syntax
DBMS_UTILITY.DB_VERSION (
version OUT VARCHAR2,
compatibility OUT VARCHAR2);
Code examples
SET SERVEROUTPUT ON
DECLARE
v_version VARCHAR2(100);
v_compatibility VARCHAR2(100);
BEGIN
DBMS_UTILITY.db_version (version => v_version, compatibility => v_compatibility);
DBMS_OUTPUT.put_line('Version: ' || v_version || ' Compatibility: ' || v_compatibility);
END;
/
CURRENT_INSTANCE Function Return the current connected instance number.
Syntax
DBMS_UTILITY.CURRENT_INSTANCE
RETURN NUMBER;
Code examples
SELECT DBMS_UTILITY.current_instance
FROM dual;
ACTIVE_INSTANCES Active instance numbers and names
Syntax
DBMS_UTILITY.IS_CLUSTER_DATABASE
RETURN NUMBER;
Code examples
SET SERVEROUTPUT ON
DECLARE
v_instance_table DBMS_UTILITY.instance_table;
v_instance_count NUMBER;
BEGIN
DBMS_UTILITY.active_instances (instance_table => v_instance_table,instance_count => v_instance_count);
IF v_instance_count > 0 THEN
FOR i IN 1 .. v_instance_count LOOP
DBMS_OUTPUT.put_line(v_instance_table(i).inst_number || ' = ' || v_instance_table(i).inst_name);
END LOOP;
END IF;
END;
/
EXEC_DDL_STATEMENT Execute the DDL statement in parse_string.
Syntax
DBMS_UTILITY.EXEC_DDL_STATEMENT (
parse_string IN VARCHAR2);
Code examples
BEGIN
dbms_utility.exec_ddl_statement('create table emp_test as select * from scott.emp');
END;
/
GET_PARAMETER_VALUE Function Get an init.ora parameter.
Syntax
DBMS_UTILITY.GET_PARAMETER_VALUE (
parnam IN VARCHAR2,
intval IN OUT BINARY_INTEGER,
strval IN OUT VARCHAR2)
RETURN BINARY_INTEGER;
Code examples
DECLARE
parnam VARCHAR2(256);
intval BINARY_INTEGER;
strval VARCHAR2(256);
partyp BINARY_INTEGER;
BEGIN
partyp := dbms_utility.get_parameter_value('db_block_size',intval, strval);
dbms_output.put('parameter value is: ');
IF partyp = 1 THEN
dbms_output.put_line(strval);
ELSE
dbms_output.put_line(intval);
END IF;
IF partyp = 1 THEN
dbms_output.put('parameter value length is: ');
dbms_output.put_line(intval);
END IF;
dbms_output.put('parameter type is: ');
IF partyp = 1 THEN
dbms_output.put_line('string');
ELSE
dbms_output.put_line('integer');
END IF;
END;
/
parameter value is: 8192
parameter type is: integer
COMMA_TO_TABLE Convert a comma-separated list of names into a PL/SQL table of names.
Syntax
DBMS_UTILITY.COMMA_TO_TABLE (
list IN VARCHAR2,
tablen OUT BINARY_INTEGER,
tab OUT UNCL_ARRAY);
Code examples
CREATE TABLE c2t_test (readline VARCHAR2(200));
INSERT INTO c2t_test VALUES ('"1","Mainframe","31-DEC-2001"');
INSERT INTO c2t_test VALUES ('"2","MPP","01-JAN-2002"');
INSERT INTO c2t_test VALUES ('"3","Mid-Size","02-FEB-2003"');
INSERT INTO c2t_test VALUES ('"4","PC","03-MAR-2004"');
INSERT INTO c2t_test VALUES ('"5","Macintosh","04-APR-2005"');
COMMIT;
SELECT * FROM c2t_test;
CREATE TABLE test_import (
src_no NUMBER(5),
src_desc VARCHAR2(20),
load_date DATE);
CREATE OR REPLACE PROCEDURE load_c2t_test IS
c_string VARCHAR2(250);
cnt BINARY_INTEGER;
my_table dbms_utility.lname_array;
BEGIN
FOR t_rec IN (SELECT * FROM c2t_test)
LOOP
dbms_utility.comma_to_table(t_rec.readline, cnt, my_table);
my_table(1) := TRANSLATE(my_table(1), 'A"','A');
my_table(2) := TRANSLATE(my_table(2), 'A"','A');
my_table(3) := TRANSLATE(my_table(3), 'A"','A');
INSERT INTO test_import
(src_no, src_desc, load_date)
VALUES
(TO_NUMBER(my_table(1)), my_table(2), TO_DATE(my_table(3)));
END LOOP;
COMMIT;
END load_c2t_test;
/
exec load_c2t_test;
SELECT * FROM test_import;
TABLE_TO_COMMA Converts a PL/SQL table of names into a comma-separated list of names.
Syntax
DBMS_UTILITY.TABLE_TO_COMMA (
tab IN UNCL_ARRAY,
tablen OUT BINARY_INTEGER,
list OUT VARCHAR2);
NAME_RESOLVE Resolve the given name.
Syntax
DBMS_UTILITY.NAME_RESOLVE (
name IN VARCHAR2,
context IN NUMBER,
schema OUT VARCHAR2,
part1 OUT VARCHAR2,
part2 OUT VARCHAR2,
dblink OUT VARCHAR2,
part1_type OUT NUMBER,
object_number OUT NUMBER);
NAME_TOKENIZE Parse the given name.
Syntax
DBMS_UTILITY.NAME_TOKENIZE (
name IN VARCHAR2,
a OUT VARCHAR2,
b OUT VARCHAR2,
c OUT VARCHAR2,
dblink OUT VARCHAR2,
nextpos OUT BINARY_INTEGER);
Code examples
declare
v_a varchar2(30);
v_b varchar2(30);
v_c varchar2(30);
v_dblink varchar2(30);
v_next number;
type vcArray is table of varchar2(255);
v_names vcArray := vcArray( 'tamimdba@gmail.com','tamim@oracledba','tamim.xyz' );
begin
for i in 1 .. v_names.count
loop
begin
dbms_utility.name_tokenize(name => v_names(i),
a => v_a,
b => v_b,
c => v_c,
dblink => v_dblink,
nextpos=> v_next );
dbms_output.put_line( 'name ' || v_names(i) );
dbms_output.put_line( 'A ' || v_a );
dbms_output.put_line( 'B ' || v_b );
dbms_output.put_line( 'C ' || v_c );
dbms_output.put_line( 'dblink ' || v_dblink );
dbms_output.put_line( 'next ' || v_next || ' ' || length(v_names(i)));
exception
when others then
dbms_output.put_line( 'name ' || v_names(i) );
dbms_output.put_line( sqlerrm );
end;
end loop;
end;
GET_HASH_VALUE Function Compute a hash value for the given string.
Syntax
DBMS_UTILITY.GET_HASH_VALUE (
name VARCHAR2,
base NUMBER,
hash_size NUMBER)
RETURN NUMBER;
Code examples
begin
dbms_output.put_line ( dbms_utility.get_hash_value( to_char(1), 0, 1024 ) );
end;
DATA_BLOCK_ADDRESS_FILE Function Get the file number part of a data block address.
Syntax
DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE (
dba NUMBER)
RETURN NUMBER;
MAKE_DATA_BLOCK_ADDRESS Function Create a data block address given a file number and a block number.
Syntax
DBMS_UTILITY.MAKE_DATA_BLOCK_ADDRESS (
file NUMBER,
block NUMBER)
RETURN NUMBER;
Code examples
SELECT dbms_utility.make_data_block_address(4, 6)
FROM dual;
DATA_BLOCK_ADDRESS_BLOCK Function Get the block number part of a data block address.
Syntax
DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK (
dba NUMBER)
RETURN NUMBER;
Code examples
SELECT file_name, file_id
FROM dba_data_files;
SELECT dbms_utility.data_block_address_file(16777222)
FROM dual;
Categories: DBMS_UTILITY Tags: DBMS_UTILITY
oracle dbms_utility.get_time,dbms_utility如何使用?相关推荐
- oracle游标声明中使用变量赋值,Oracle游标使用方法(游标里使用变量绑定)
来源:http://www.jzxue.com/shujuku/oracle/200910/01-2839.html 游标(CURSOR)也叫光标,在关系数据库中经常使用,在PL/SQL程序中可以用C ...
- 转:Oracle中的日期和字符串互相转换
TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- Oracle中TO_DATE格式
Year: yy two digits 两位年 显示值:07 yyy three digits 三位年 ...
- oracle显示当天日期函数,oracle日期函数
oracle日期函数 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual 当 ...
- ORACLE告警日志文件
告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file).告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称.数据库告警日志是按时间 ...
- oracle之to_date函数
日期格式参数 含义说明 D 一周中的星期几 DAY 天的名字,使用空格填充到9个字符 DD 月中的第几天 DDD 年中的第几天 DY 天的简写名 IW ISO标准的年中的第几周 IY ...
- [转]ORACLE日期时间函数大全
本文转自:http://www.cnblogs.com/chuncn/archive/2009/04/29/1381282.html ORACLE日期时间函数大全 TO_DATE格式(以时间:2007 ...
- oracle日期处理(一)
TO_DATE格式 Day: dd number 12 dy abbreviated fri day spelled out friday ddspth spelled out, ordinal tw ...
- forall oracle 游标,FORALL用法小结
本文主要翻译.整理了ORACLE官方文档上有关FORALL的部份内容,不妥之处,还希望多和大家交流. 在发送语句到SQL引擎前,FORALL语句告知PL/SQL 引擎批挷定输入集合.尽管FORALL语 ...
- oracle sql比较时间大小,Oracle数据库中日期时间的操作比较和加减
Oracle数据库中日期时间的操作比较和加减 Oracle关于时间/日期的操作 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7 ...
最新文章
- (52 90) 简答 什么叫计算机网络,计算机网络期末复习试卷.doc
- 待研究金华的存储过程
- jquery----js/css 导入
- Python基础——PyCharm版本——第三章、数据类型和变量(超详细)
- 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码
- linux升级gnome,linux – Gnome shell特权升级
- 【redis 学习系列08】Redis小功能大用处02 Pipeline、事务与Lua
- 除了写代码,还能如何晋升为高级工程师?
- N个例子让你彻底理解java接口回调
- Pycharm CPU占用100%
- sd卡 格式化 命令 linux,在Linux命令行上格式化SD卡、USB驱动器、闪存驱动器的方法...
- VS2010出现重复的代码项原因及解决方式
- 如何比较两个文本的相似度
- 删除字符串某一指定子字符串
- 10分钟上手pythonpandas_【译】10分钟学会Pandas
- 【JavaScript】亚马逊下载ABA表格数据,30秒完成
- 除了百度、搜狗搜索你还知道哪些好用的搜索引擎吗?
- 概率论与数理统计系列笔记之第四章——大数定理与中心极限定理
- 支付宝正式发布黑莓版客户端
- 最新版pycharm下载安装免费使用
热门文章
- CPU卡简介/CPU卡和非接触式IC卡的区别
- 计算机桌面的理解,电脑桌面的基础知识教程,教你认识电脑桌面
- Flutter学习笔记: Dart语言值之面向对象class
- 刘寅立matlab数值计算案例分析 pdf,《MATLAB数值计算案例分析》源代码
- 农民股神六万元博出千万身家
- 肿瘤微环境之免疫与代谢
- 80个让你笑爆肚皮的程序员段子,不好笑算我输!
- bzoj2429: [HAOI2006]聪明的猴子(最小生成树)
- 洛谷——P2504 [HAOI2006]聪明的猴子
- Android 面试中高级上