ORACLE 对象类型 ODCIAggregate 自定义聚合函数

在 Oracle 数据库中,可以使用 PL/SQL 语言来创建自定义聚合函数。自定义聚合函数的创建过程与标准 SQL 函数的创建有所不同
CREATE OR REPLACE TYPE “STRCAT_TYPE” as object(
cat_string varchar2(4000),
static function ODCIAggregateInitialize(cs_ctx in out strcat_type) return number,
member function ODCIAggregateIterate(self in out strcat_type,value in varchar2) return number,
……….

, ,

ODCIConst.Success是什么?

今天有个网友问oracle 的对象类型有段代码是return ODCIConst.Success;我查了一下,得出一下结论

那是在一篇oracle关于合并列值的文章,其实有很多方法,ODCIConst.Success=0
……

ASH buffers的大小疑问

网上有一种说法ASH buffers的大小按照以下算法分配:Min(shared_pool_size*5%,2M*cpu_count)
我验证了一下,使用asmm或msmm,找了三台机器,结果有点不同

alter table rename talblename、columnname、indexname、constraintsname

重命名表名、字段名、索引名、约束名

SQL> CREATE TABLE test1 (
2 col1 NUMBER(10) NOT NULL,
3 col2 VARCHAR2(50) NOT NULL);
…….

exp query 导出加where条件

exp 导出单表时可以加where条件,但转义有时很头疼,下面请看我的实验

SQL> create table test_exp(id number,in_date date);

Table created.

JOBRUNNINGLOG的创建-计算程序运行时间-自建JOB监控日志

ORACLE自身提供的JOB监控视图 dba_jobs,dba_jobs_running 里只提供JOB一共运行耗时多久(无论运行多少次),或者JOB是否正在运行查看。那么我想知道每次JOB的运行时间,怎么办?此为我的实现方式。代码的主要部分。思路:记录程序开始的时间点,记录程序结束的时间点,二者之差写入一张JOBRUNNINGLOG表中。就是自己监控自己的JOB。此思路已经实现。以下为实现的核心代码。

让程序DO-NOTHING

很多时候需要这样的情况。此为举例说明一下。备忘!

ORA-04089: cannot create triggers on objects owned by SYS

今天做实验,忘记切换用户,在sys下建立触发器时发现了ORA-04089,不能建立trigger在sys的对象上

SQL> conn / as sysdba
Connected.

sql 编程命名规范

create or replace procedure pro_test_create_table
— 1 命名:建议PRO开头来区分是存储过程还是其他什么对象,例如: TRI_ FUN_ PAC_等等。尽量表达清楚,他的用意。是做什么的…..

orcle of column trigger test

CREATE OR REPLACE TRIGGER TRI_TEST
BEFORE INSERT OR UPDATE
of ID_A
ON test_trigger_ofcol
….

linux登录提示”[: =: unary operator expected”

以前在linux上安装的一台oracle的机器,每次本机登录都会提示”[: =: unary operator expected”,显然是profile出了问题

因为配置oracle时,会对用户oracle做系统资源限制加下profile中

#new add
if [ $USER = “oracle” ]; then

oracle 修改列的前后顺序

Whether you are create table or alter table plus a filling, the column is asequence of before and after,In oracle you can modify the sequence.

for example:

详解log_archive_dest与log_archive_dest_n区别

今天把一个新上线的数据库改为了归档模式,顺便修改了一下归档文件存放路径,开始配置的log_archive_dest,后来发现在闪回区同样还会有一份共两份,后来重新配置log_archive_dest_1变成了一份,其实另有玄机,下面请仔细看我的操作过程
….

ORA-25153: Temporary Tablespace is Empty

SQL> select dbms_metadata.get_ddl(‘TABLE’,’SQLLDR_TEST’,’ANBOB’) from dual;
ERROR:
ORA-25153: Temporary Tablespace is Empty
ORA-06512: at “SYS.DBMS_LOB”, line 443
ORA-06512: at “SYS.DBMS_METADATA”, line 2729

表空间重命名(rename tablespace name)

oracle 10g 推出了一个强大的特性,你可以修改已存在表空间的名称了

for examples:

SQL> create tablespace tbsold;

Tablespace created.
…..

oracle ORA_ROWSCN 行记录的更新时间

在这介绍两个oracle 10G开始提供的一个伪列ORA_ROWSCN,它又分为两种模式一种是基于block,这是默认的模式,还有一种是基于row上,这种模式只能在建里表时指定ROWDEPENDENCIES,不可以通过后期的alter table ,同时会给数据库带来性能负载

把qq群聊天记录导入数据库思路

如果你是一个群主,群里的成员满了,别人进不来,群里面的有部分人又天天在扯皮,不如找出来让位给别人,那就把qq消息导出来导入数据库分析一下,上周五我就做了这工作,下面说说思路
…..

dbca建库时Error securing Database Control

如果你的数据库从10.2.01升级到了10.2.04,然后用dbca建立数据库是84%会遇到下面的警告

Error securing Database Control, Database Control has been brought up in non-secure mode. To secure the Database Control execute the following command(s):
…..

Relocating redo log files (修改日志文件路径)

修改日志文件路径,实现多路径,虽然这会降低性能,但与数据的安全性相比,是值得的!还有数据优化中记的把redo log 与数据文件分开,而且要把redo log放在最快的硬盘设备上,实现 减轻io负载

SQL> select * from v$logfile;
….

sqlplus autocommit自动提交

今天同事让更新一批insert脚本,说是在plsql dev工具下更新很慢,那我用sqlplus @文件路径的文件执行,结果返回的提示太快一闪而过,中间还有一段长文本没看清,于是我ctrl+c取消了,rollback,加下了spool保存回显信息,执行结束后发现原来是每100行自动提交了,以至于后来我发现存在的比插入的多,原来ctrl+c前的早已提交。
…….