`

Oracle常用方法搜集

阅读更多
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常用命令

    oracle常用监控脚本

    "Oracle常用监控脚本"通常包含了多种用于检查数据库性能、资源使用情况以及问题排查的工具和脚本。这些脚本可以帮助DBA(数据库管理员)实时了解数据库的状态,及时发现并解决问题,确保系统的健康运行。 1. **SQL ...

    oracle常用sql.rar

    "oracle常用sql.rar"这个压缩包文件显然包含了关于Oracle数据库中常用SQL语句的集合,这对于学习和工作中解决常见问题非常有帮助。以下是一些Oracle SQL的重要知识点: 1. **锁表查询**: 在Oracle中,锁定数据是...

    oracle常用端口号

    ### Oracle常用端口号详解 在IT领域中,Oracle数据库及其相关服务因其稳定性和高效性而被广泛应用。在管理和维护Oracle系统时,了解其使用的端口是至关重要的,因为这不仅关系到系统的正常运行,还涉及到网络配置、...

    Oracle DBA常用方法封装

    本话题主要讨论的是"Oracle DBA常用方法封装",具体表现为一个名为`ZL_DBA_Service.pck`的包体(PackageBody)。 1. **包的概念与结构** 在Oracle中,包是将相关的常量、类型、游标、过程和函数组合在一起的逻辑...

    oracle 常用脚本

    "Oracle常用脚本"集合通常包括一系列用于安装、配置、管理和维护Oracle数据库的自动化脚本。这些脚本可以极大地提高DBA(数据库管理员)的工作效率,确保数据库的稳定运行。 1. **安装脚本**: 安装脚本主要负责自动...

    Oracle常用函数汇总收集

    ### Oracle常用函数详解 在数据库管理和开发中,Oracle数据库因其强大的功能和广泛的适用性而备受青睐。其中,SQL函数是进行数据操作与处理的重要工具,本文将深入解析Oracle数据库中常用的函数,帮助读者更好地...

    oracle性能监控常用语句集合

    本资料集包含了Oracle性能监控的一些常用语句,旨在帮助用户更好地理解和优化数据库性能。以下是这些语句的主要类别及其详解: 1. **V$视图查询**: Oracle提供了大量的动态性能视图(V$视图),通过查询它们可以...

    Oracle语句大全

    oracle常用语句,从网上搜集并整理,主要是常用oracle命令与常用语句

    ORACLE常用维护命令

    以下是针对提供的文件内容中涉及的一些Oracle常用命令的详细说明: 1. **查看归档日志文件**: 使用`V$LOG_HISTORY`视图可以查看当前有效的归档日志文件。如果在查询结果中没有显示的日志文件,表明它们可以被安全...

    收集的oracle常用DBA命令sql,导入导出表等

    在Oracle数据库管理(DBA)工作中,掌握一系列常用的SQL命令对于高效管理和维护数据库至关重要。本文将详细介绍Oracle DBA在创建表空间、创建用户以及导入导出表等方面的关键操作。 首先,Oracle数据库的启动和关闭...

    oracle常用命令集

    以下是一些Oracle常用的数据库操作命令的详细说明: 1. 创建TABLESPACE/ROLLBACK SEGMENT: 表空间(TABLESPACE)是Oracle数据库存储数据文件的地方,用于组织数据库的数据对象。创建表空间的SQL命令如下: ```sql...

    Oracle优化常用概念.pptx

    Oracle 优化常用概念 Oracle 优化器是 Oracle 数据库管理系统中一个核心组件,负责根据用户提交的 SQL 语句生成最优的执行计划,以提高查询效率。以下是 Oracle 优化器中的一些常用概念: CBO/RBO Oracle 优化...

    oracle常用命令详解

    以下是对"Oracle常用命令详解"文档中可能包含的一些关键知识点的详细介绍: 1. **SQL*Plus命令**: - `SELECT`:用于从表中查询数据,是最基础的SQL命令。 - `INSERT`:用于向表中插入新的记录。 - `UPDATE`:...

    Oracle常用命令参考

    ### Oracle常用命令详解 在IT领域,Oracle数据库作为企业级数据管理的重要工具,其命令集是DBA(数据库管理员)和开发人员日常工作中不可或缺的一部分。本文将深入解析Oracle中的常用命令,涵盖SQL与SQL\*Plus环境...

    oracle 常用sql语句和常见问题

    本资料集主要涵盖了Oracle中的常用SQL语句以及在实际应用中可能遇到的常见问题及其解决策略。 1. **SQL基本操作**: - **SELECT语句**:用于从表中选择数据。例如,`SELECT * FROM table_name;` 将获取表中的所有...

    ORACLE常用包参考手册

    "ORACLE常用包参考手册"很可能包含了一系列关于Oracle数据库中的PL/SQL包的详细信息,这些包是开发人员和DBA在日常工作中经常使用的工具。下面我们将深入探讨一些常见的Oracle包及其相关知识点。 1. **DBMS_OUTPUT*...

    oracle常识-常用的知识

    这篇“Oracle常识-常用的知识”将带你深入了解Oracle的基本概念、功能和常见操作。 1. Oracle数据库概述: Oracle数据库是一种关系型数据库管理系统(RDBMS),由美国Oracle公司开发。它支持SQL语言,提供了高度可...

    日常收集整理的oracle常用命令大全(收藏)

    一、Oracle的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit...

    ORACLE学习之常用数据库系统表语句

    接下来将详细介绍一些常用的Oracle系统表语句及其应用场景。 首先,对于统计分析,`ANALYZE TABLE`语句用于收集表或索引的统计信息,这有助于优化器更好地制定执行计划,从而提升查询效率。例如: ```sql ANALYZE ...

Global site tag (gtag.js) - Google Analytics