用户自定义异常
用户自定义异常[@more@]create or replace procedure sp_insert_data01asj number;k number;excp exception;beginj:= 10;k:= 20;if j <= k thenraise excp;end if;for i in 1..1000000 loopinsert into tb_hxl_testvalues(i,to_char(i)||chr(i));end loop;exceptionwhen excp then begindbms_output.put_line('Error code: ' || sqlcode); dbms_output.put_line('Error description: ' || sqlerrm);rollback;end;insert into tb_hxl_log values('aa','bb'); -- 测试commit;end sp_insert_data01;
分段提交删除大批量数据
分段提交删除大批量数据[@more@]例子1:declare i integer; begin loop execute immediate 'delete from tb_name f_a=xxx and f_b=yyy and romnum<5000'; commit; select count(*) into i from tb_name f_a=xxx and f_b=yyy; exit when i=0; end loop; end;例子2:set serveroutput on Declare rcode integer; begin loop --每次将表a删除10000条记录 delete from a where exists (select usercode from b where a.usercode = b.usercode) and rownum < 10000; --每10000条提交一次 commit; exit when sql%rowcount = 0; end loop;
awk用法小结
awk用法小结[@more@]转载:http://www.chinaunix.net/jh/24/691456.htmlawk 用法:awk ' pattern {action} ' 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk '/101/' file 显示文件file中包含101的匹配行。 awk '/101/,/105/' file awk '$1 == 5' file awk '$1 == "CT"' file 注意必须带双引号 awk '$1 * $2 >100 ' file awk
Oracle Instead of 触发器的使用
Oracle Instead of 触发器的使用[@more@]Oracle Instead of 触发器的使用转自:http://blogger.org.cn/blog/more.asp?name=RandomRen&id=20956我平时比较少用触发器,主要是因为程序逻辑不对的时候不容易发现错误,有时数据量大了也可能产生性能上的问题,但这个东西总有用武之地,在很多场合还是会起到巨大的作用。这两天就遇到一个问题,有两张表的一个字段需要进行同步更新,也就是A表修改时要把对应的B表的记录字段修改,反过来B表修改时也要把A表的修改,保持两边数据的一个同步,这个可以在前台很容易的实现,但开发人员不想修改
投简历公司
深圳巨灵信息技术有限公司 公司地址:深圳市福田区华强北路赛格科技园四栋10层 邮政编码:518028 公司网址:Http://www.genius.com.cn 深圳市安络科技有限公司 公司地址:深圳市罗湖区翠竹北路石化水贝工业区三栋东侧八楼 邮政编码:518020 公司网址:深圳市嵘兴实业发展有限公司 公司地址:深圳市华富路中航苑航都大厦21层136信箱 邮政编码:518031 公司网址:http://www.rxing.com职位名称:数据库工程师深圳市瓦尔雷思科技开发有限公司 公司地址:福田区车公庙泰然工贸园210栋东座4C、西座4G 邮政编码:518040 公司网址:http://www.
Grouping函数使用
Grouping函数使用[@more@] --三级汇总 insert into tb_test select $1 ,case when grouping (c.fee_area) = 1 then '0' when grouping (c.fee_area_name) = 1 then '0' when grouping (c.area_code) = 1 then c.fee_area when grouping (c.area_code_name) = 1 then c.fee_area else c.area_code end as "organize_id" ,case when grouping (c.fee_area) = 1 then '9' when grouping (c.fee_area_name) =
分析函数
分析函数[@more@]Oracle 分析函数使用介绍分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有相当大的提高.下面我将针对分析函数做一些具体的说明.今天我主要给大家介绍一下以下几个函数的使用方法1. 自动汇总函数rollup,cube,2. rank 函数, rank,dense_rank,row_number3. lag,lead函数4. sum,avg,的移动增加,移动平均数5.
dbx
dbx[@more@]dbx是UNIX下基于命令行界面的程序调试器,假如不能学会dbx,无疑将为你在UNIX端的编程上增添许多的困难。 dbx是通过交互执行dbx子命令来达到调试的目的的。在调试程序前,必须先将-g选项包含在编译信息中,编译生成带调试信息的文件,即:cc -o filename -g file.c。进入dbx通常只需输入"dbx filename"即可,filename为待调试的可执行程序名。dbx加载后就显示提示符:(dbx),此时用户就可以输入dbx子命令进行调试了。 下面是一些dbx的常用子命令: 1.基本操作命令 run arg1 arg2 ... :以arg1,arg2,
proc_exp
proc_exp[@more@]exp_test.pc/* 一般头文件*/#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <fcntl.h>#include <dirent.h>#include <unistd.h>#include <errno.h>#include <time.h>#include <ctype.h>#include <sys/stat.h>#include <stdarg.h>#include <strings.h>#include <netdb.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/wait.h>#include <setjmp.h
查看某个进程使用到的并行进程数
查看某个进程使用到的并行进程数[@more@]查看某个进程使用到的并行进程数select a.QCSID ,count(a.SID)from gv$px_session a where a.SID<>a.QCSIDgroup by a.QCSID
PROC提取数据
PROC提取数据[@more@]1.创建fetch_data.pc文件,内容如下:#include "sqlca.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <sqlda.h>#include <sqlcpr.h>#include <ctype.h>#include <extension.h>#include "oci.h"//定义列和绑定变量的最大个数#define MAX_ITEMS 40//定义列名的最大值#define MAX_VNAME_LEN 30#define MAX_INAME_LEN 30extern void sqlnul( unsigned short*, unsigned short*, int*);extern void sqlprc( unsigned int*, int*, int
查看临时表空间使用情况
查看临时表空间使用情况[@more@]表空间使用情况:select a.tablespace_name ,a.total_G ,b.fee_G ,(a.total_G-b.fee_G)/a.total_G as "used%" from (select a.tablespace_name ,sum(a.bytes)/1024/1024/1024 As total_G from dba_data_files agroup by a.tablespace_name) aleft join (select a.tablespace_name ,sum(a.bytes)/1024/1024/1024 as fee_G from dba_free_space a group by a.tablespace_name ) b on a.tablespace_name =
SQLLOAD应用举例
SQLLOAD应用举例[@more@]sqlload_ctl.sh文件内容如下:. ${HOME}/.biconfigTABNAME=tb_individual_billINTCODE=05111#!/bin/shsql_clean() {sqlplus -s ${loghwods}<<EOFset echo off;set heading off;set verify off;set feedback off;set show off;set trim off;set pages 0;set concat on;set lines 300;set trimspool on;set trimout on;whenever sqlerror exit 20;truncate table ${TABNAME};exit 0;EOF}infile_list() {unset FLISTexport FLIST=`find $FDIR -name "*${NOW}*.AVL"`bb=`echo $FLIST|wc -w |awk '{prin
在sqlplus全部输出clob字段的内容
在sqlplus全部输出clob字段的内容[@more@]在sqlplus全部输出clob字段的内容创建表create table tp_clob( test clob;);使用工具pl/sql developer中写入如下内容create or replace function fn_test(v_table in varchar)return numberasv_count number;v_sql varchar2(100);begin v_sql:= 'select count(*) from '||v_table; execute immediate v_sql into v_count; return v_count;end;默认的设置在sqlplus中查询的时候只能输出部分内容:SQL>select test from tp_clob;create or replace function fn_test(v_table in va
创建DG过程
创建DG过程[@more@]以下是创建DG的简化过程1.主备节点上都设置为事物日记记录模式.主库:alter database force logging;2.shutdown主数据库,将数据文件(*.dbf)、日记文件(*.log)、控制文件(*.ctl)tar打包.主库:tar -cvf oradata.tar oradata生成文件oradata.tar3.创建standby控制文件主库:alter database create standby controlfile as '/opt/oracle/stdcotrl.ctl';生成文件stdcotrl.ctl4.主库创建pfile主库:SQL> create pfile from spfile; 生成文件initprimary.ora5.登陆备用节点,ftp获得数据库文件、备用控制文件及参数文件ftp>
单引号在动态SQL中的处理
单引号在动态SQL中的处理[@more@]单引号在动态SQL中的处理SQL代码如下:insert into tmpselect * from v_table where organize_id like 'A%' or organize_id = '99999'动态SQL如下: execute immediate 'insert into tmp' ||' select * from ' ||v_table ||' where organize_id like ''A%''' ||' or organize_id = ''99999''';也就是说普通SQL的一个单引号在动态SQL使用两个单引号表示.
绑定变量的一个例子
绑定变量的一个例子[@more@]在ORACLE中,使用绑定变量,可以降低硬解析,通常可以提高系统的性能.如下是一个绑定变量的例子(在存储过程中使用):create or replace procedure pro_update_his_data_mon(v_table in varchar)asv_sql varchar2(500);v_sum_filed varchar2(500);v_sum_mid varchar2(100);v_like varchar2(10):='A2%';v_99999 varchar2(10):='99999';v_zero varchar2(10):='0';v_table_exist number;v_table_exist_bak number;cursor fet_filed is select column_name from user_tab_columns awhere a.table_name = upper(v_table)a
使用makefile编译c程序
使用makefile编译c程序[@more@]一、Makefile的规则 Makefile的规则如下: target ... : prerequisites ... command 这里的command是指生成或是处理target随执行的命令;prerequisites指的是生成target所需要依赖的文件.二、一个示例 自行编写了2个C文件(get_max.c,fn_max.c),我们为了完成前面所述的那三个规则,我们的Makefile应该是下面的这个样子的。 SHELL = /usr/bin/kshLINK.c = ccget_max:get_max.o fn_max.o <tab>cc -o get_max get_max.o fn_max.oget_max.o:get_max.c <tab>cc -c get_max.cfn_max.
pipelined函数实例
PIPELINED函数实例[@more@]最近用户提供一份如下格式数据的EXCEL地市公司 学校名称 学生数AA公司 巴马一小 0AA公司 NULL 0AA公司 NULL 0AA公司 NULL 0AA公司 NULL 0AA公司 NULL 500BB公司 巴马二小 0BB公司 NULL 0BB公司 NULL 0BB公司 NULL 0BB公司 NULL 0BB公司 NULL 255. . .. . .. . .最后需要实现的效果如下:地市公司 学校名称 学生数AA公司 巴马一小 0AA公司 巴马一小 0AA公司 巴马一小 0AA公司 巴马一小 0AA公司 巴马一小 0AA公司 巴马一小 500BB公司 巴马二小 0BB公司 巴马二小 0BB公司 巴马二小 0BB公司 巴马二小 0BB公司 巴马二
AWK使用实例1
AWK统计目录文件数[@more@]今天试着使用AWK中的字符串做为数组下标的方式统计某个目录下的文件数:test$ find . -type f | awk 'BEGIN{FS=OFS="/"}{$NF="";array[$0]++}END{for(i in array) printf("%st%sn",array[i],i)}'输出:211 ./c/15 ./proc/12 ./string/25 ./1 ./foo/2 ./test002/31 ./test001/ AWK计算当前总目录文件大小: ls -al|awk 'BEGIN{sum=0} /^-r/ {sum=sum+$5} END{printf("the sum is %dn",sum)}'或ls -al|sed -n "/^-r/p"|awk 'BEGIN{sum=0}