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常用函数收集 SQL中的单记录函数
经典SQL语句收集,在oracle中进行列行转换 ,五种提高SQL性能的方法,常用SQL查询,SQL优化原则等共计112册适合初学者学习。
本文档收集了oracle日常运维优化常用脚本
oracle常用语句,从网上搜集并整理,主要是常用oracle命令与常用语句
oracle常用经典sql查询,网上收集的,很实用。
这个是我自己收集的一些oracle常用的命令,我是初学者,如果不能满足大家的要求请原谅
收集ORACLE的110个常用函数,快速查询其语法和作用。
oracle 常用命令收集。很实用的!!!!12121
Oracle常用傻瓜问题1000问,收集了Oracle常见的问题,并做出了详细解答,是学习Oracle的好的文档!
个人整理加Oracle内部管理授课收集的..
一、Oracle的启动和关闭 1、在单机环境下 要想启动或关闭ORACLE系统必须首先切换到ORACLE用户,如下 su - oracle a、启动ORACLE系统 oracle>svrmgrl SVRMGR>connect internal SVRMGR>startup SVRMGR>quit...
文件全称《ORACLE常用傻瓜问题1000问全集(1-971).chm》,标题为1000问,只收集到971。 整理后的格式采用Chm,主要是为了方便查询、搜索。
oracle常用资料收集
Oracle的常用数据类型[收集].pdf
Oracle维护常用SQL语句,收集于网络
创建表空间,创建用户,导入导出表等SQL语句
oracle里的常用命令及oracle应用中常见的1000个问题
收集了一些常用的oracle函数,与大家共享!