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。此思路已经实现。以下为实现的核心代码。
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前的早已提交。
…….