1、查看Oracle版本
SELECT * FROM V$VERSION;
SELECT * FROM v$instance;
2、查看数据库中的JOB
SELECT * FROM user_jobs;
3、ORA-01810: format code appears twice
使用函数TO_TIMESTAMP('2014-10-28 11:21:19', 'yyyy-MM-dd HH:mm:ss')时报的错误,这个是因为Oracle不区分大小写,format中使用的Mm重复了,所以报错,改正:TO_TIMESTAMP('2014-10-28 11:21:19', 'yyyy-MM-dd HH:mi:ss')
4、自定义类型
CREATE OR replace TYPE obj_table AS object
(tmpId VARCHAR(10),info VARCHAR(10),dt timestamp)
-- 自定义表类型,包含多个参数时,需要宁外定义一个object类型
CREATE OR replace TYPE t_table AS TABLE OF obj_table;
--创建一个方法,返回表类型(管道化表函数方法,这种方式最后的return为空)
create or replace function f_pipe(s number)
return t_table pipelined
as
v_obj_table obj_table;
begin
for i in 1..s loop
v_obj_table := obj_table(i,to_char(i*i));
pipe row(v_obj_table);
end loop;
return;
end f_pipe;
-- 普通创建方法
create or replace function f_normal(s number)
return t_table
as
rs t_table:= t_table();
begin
for i in 1..s loop
rs.extend;
rs(rs.count) := obj_table(rs.count,'name'||to_char(rs.count));
--rs(rs.count).name := rs(rs.count).name || 'xxxx';
end loop;
return rs;
end f_normal;
-- 调用
select * from table(f_pipe(5));
5、Oracle自定义聚合函数
--定义函数
CREATE OR REPLACE FUNCTION f_catstring (p_str VARCHAR2)
RETURN VARCHAR2
AGGREGATE USING t_stringconcat;
--定义类型
CREATE OR REPLACE TYPE t_stringconcat AS OBJECT (
str VARCHAR2 (1000),
oldstr VARCHAR2 (1000),
--初始化函数,必须要实现的方法,初始化上下文环境
STATIC FUNCTION odciaggregateinitialize (sctx IN OUT t_stringconcat)
RETURN NUMBER,
--迭代运算函数,必须实现的方法,第一个参数为聚合的上一个值,
--第二个参数为当前要处理的值,如果为空,则忽略该次迭代
MEMBER FUNCTION odciaggregateiterate (
SELF IN OUT t_stringconcat,
VALUE IN VARCHAR2
)
RETURN NUMBER,
--聚合函数的最后一步,用于返回处理结果,必须实现的方法。第一个参数为上下文,
--第二个参数为返回值,可以是number和varchar2等类型,第三个参数是标志位
MEMBER FUNCTION odciaggregateterminate (
SELF IN t_stringconcat,
returnvalue OUT VARCHAR2,
flags IN NUMBER
)
RETURN NUMBER,
--合并上下文到一个上下文中,并行或串行有可能被执行,必须实现,但Oracle选择性执行
MEMBER FUNCTION odciaggregatemerge (
SELF IN OUT t_stringconcat,
ctx2 IN t_stringconcat
)
RETURN NUMBER
);
--定义body,实现Object type
CREATE OR REPLACE TYPE BODY t_stringconcat
IS
STATIC FUNCTION odciaggregateinitialize (sctx IN OUT t_stringconcat)
RETURN NUMBER
IS
BEGIN
--初始化
sctx := t_stringconcat(NULL, NULL);
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateiterate (
SELF IN OUT t_stringconcat,
VALUE IN VARCHAR2
)
RETURN NUMBER
IS
BEGIN
--解决拼接多个字段重复的问题
IF NOT SELF.oldstr IS NULL AND SELF.oldstr = VALUE
THEN
NULL;
ELSE
SELF.str := SELF.str || VALUE || ', ';
END IF;
SELF.oldstr := VALUE;
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregateterminate (
SELF IN t_stringconcat,
returnvalue OUT VARCHAR2,
flags IN NUMBER
)
RETURN NUMBER
IS
BEGIN
returnvalue := SUBSTR (SELF.str, 1, LENGTH (SELF.str) - 2);
RETURN odciconst.success;
END;
MEMBER FUNCTION odciaggregatemerge (
SELF IN OUT t_stringconcat,
ctx2 IN t_stringconcat
)
RETURN NUMBER
IS
BEGIN
NULL;
RETURN odciconst.success;
END;
END;
并行执行聚合函数:
与内置函数一样,自定义聚合函数也可以并行执行。并指执行时,首先是各个slave执行聚合运算,然后将结果进行合并,合并是通过ODCIAggregateMerge实现的。下图展示了这个过程
注意:我们可以将自定义聚合函数作为分析函数使用,但是为了提高分析函数的执行效率,我们可以对自定义聚合函数做一些处理,详细内容可以参考《Data Cartridge Developer's Guide 》
相关推荐
oracle常用命令收集 oracle常用命令
"Oracle常用监控脚本"通常包含了多种用于检查数据库性能、资源使用情况以及问题排查的工具和脚本。这些脚本可以帮助DBA(数据库管理员)实时了解数据库的状态,及时发现并解决问题,确保系统的健康运行。 1. **SQL ...
"oracle常用sql.rar"这个压缩包文件显然包含了关于Oracle数据库中常用SQL语句的集合,这对于学习和工作中解决常见问题非常有帮助。以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是...
### Oracle常用端口号详解 在IT领域中,Oracle数据库及其相关服务因其稳定性和高效性而被广泛应用。在管理和维护Oracle系统时,了解其使用的端口是至关重要的,因为这不仅关系到系统的正常运行,还涉及到网络配置、...
本话题主要讨论的是"Oracle DBA常用方法封装",具体表现为一个名为`ZL_DBA_Service.pck`的包体(PackageBody)。 1. **包的概念与结构** 在Oracle中,包是将相关的常量、类型、游标、过程和函数组合在一起的逻辑...
"Oracle常用脚本"集合通常包括一系列用于安装、配置、管理和维护Oracle数据库的自动化脚本。这些脚本可以极大地提高DBA(数据库管理员)的工作效率,确保数据库的稳定运行。 1. **安装脚本**: 安装脚本主要负责自动...
### Oracle常用函数详解 在数据库管理和开发中,Oracle数据库因其强大的功能和广泛的适用性而备受青睐。其中,SQL函数是进行数据操作与处理的重要工具,本文将深入解析Oracle数据库中常用的函数,帮助读者更好地...
本资料集包含了Oracle性能监控的一些常用语句,旨在帮助用户更好地理解和优化数据库性能。以下是这些语句的主要类别及其详解: 1. **V$视图查询**: Oracle提供了大量的动态性能视图(V$视图),通过查询它们可以...
oracle常用语句,从网上搜集并整理,主要是常用oracle命令与常用语句
以下是针对提供的文件内容中涉及的一些Oracle常用命令的详细说明: 1. **查看归档日志文件**: 使用`V$LOG_HISTORY`视图可以查看当前有效的归档日志文件。如果在查询结果中没有显示的日志文件,表明它们可以被安全...
在Oracle数据库管理(DBA)工作中,掌握一系列常用的SQL命令对于高效管理和维护数据库至关重要。本文将详细介绍Oracle DBA在创建表空间、创建用户以及导入导出表等方面的关键操作。 首先,Oracle数据库的启动和关闭...
以下是一些Oracle常用的数据库操作命令的详细说明: 1. 创建TABLESPACE/ROLLBACK SEGMENT: 表空间(TABLESPACE)是Oracle数据库存储数据文件的地方,用于组织数据库的数据对象。创建表空间的SQL命令如下: ```sql...
Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...
以下是对"Oracle常用命令详解"文档中可能包含的一些关键知识点的详细介绍: 1. **SQL*Plus命令**: - `SELECT`:用于从表中查询数据,是最基础的SQL命令。 - `INSERT`:用于向表中插入新的记录。 - `UPDATE`:...
### Oracle常用命令详解 在IT领域,Oracle数据库作为企业级数据管理的重要工具,其命令集是DBA(数据库管理员)和开发人员日常工作中不可或缺的一部分。本文将深入解析Oracle中的常用命令,涵盖SQL与SQL\*Plus环境...
本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...
"ORACLE常用包参考手册"很可能包含了一系列关于Oracle数据库中的PL/SQL包的详细信息,这些包是开发人员和DBA在日常工作中经常使用的工具。下面我们将深入探讨一些常见的Oracle包及其相关知识点。 1. **DBMS_OUTPUT*...
这篇“Oracle常识-常用的知识”将带你深入了解Oracle的基本概念、功能和常见操作。 1. Oracle数据库概述: Oracle数据库是一种关系型数据库管理系统(RDBMS),由美国Oracle公司开发。它支持SQL语言,提供了高度可...
一、Oracle的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit...
接下来将详细介绍一些常用的Oracle系统表语句及其应用场景。 首先,对于统计分析,`ANALYZE TABLE`语句用于收集表或索引的统计信息,这有助于优化器更好地制定执行计划,从而提升查询效率。例如: ```sql ANALYZE ...