解决问题oracle学习篇
向大家请教一个问题:有如下数据:FPHM start_num end_num---------- ----------- -----------2013 120 1222013 124 1252013 125 1282014 7 9需要查询出来连续号段,根据上面的数据应该得出:2013 124 ---网友:grubbyoo create table test (fphm number ,start_num number,end_num number )insert into test values(2013,120,122)insert into test values(2013,124,125)insert into test values(2013,125,128)insert into test values(2013
oracle存储过程!解决网友问题
有表T_1(index_1, crop_id, corp_name, start_time, end_time), 需要生成T_2(index_2, corp_id, corp_name, year_time, month_time). 其中index_1和index2由SEQUENCE产生 数据如下: T_1 index_1, corp_id, corp_name, start_time, end_time 101 1 microsoft 2007-5 2007-7 102 2 ibm 2008-1 2008-2 T_2 index_2, corp_id corp_name year_time month_time 8 1 microsoft 2007 5 9 1 microsoft 2007 6 10
oracle存储过程学习
----存储过程:create or replace procedure pro_test_add isi number;total number;begin i :=1; total :=0; for i in 1..100 loop total := total+i; end loop; dbms_output.put_line(total);end;--运行提示:ora_000650用户权限有问题,改为system 执行通过.当然,建议用DBA进行,对该用户进行赋权限的操作.因为system不是很经常动.--PL/SQL command中运行,提示执行成功,没有数据显示set serveroutput on;即可![@more@]存储过程.
数字电视--工作空闲,休息时享用
数字电视.rar 工作空闲,休息时享用[@more@]
Oracle备份与恢复总结[转]
Oracle备份与恢复总结.pdf[@more@]写得挺不错,发到博客让更多人分享!
oracle系统视图作用大全
oracle系统视图作用大全____________________DBA学习第一步,了解system下各视图功能[@more@]-----------DBA----------------DBA_2PC_NEIGHBORS 包含待处理事务进入连接和退出连接信息。DBA_2PC_PENDING 包含等待恢复的分布式事务的信息。DBA_ALL_TABLES 显示数据库中所有表(对象表和关系表)的描述。DBA_ANALYZE_OBJECTS 列出分析对象。DBA_ASSOCIATIONS 列出用户定义的统计信息。DBA_AUDIT_EXISTS 列出由AUDIT NOT EXISTS(不存在审计)和AUDIT EXISTS(存在审计)产生的审计跟踪条目。DBA_AUDIT_OBJECT 包含系统中所有对象的审计跟踪记录
oracle 中查询被锁的对象,并杀死死锁进程的方法
oracle 中查询被锁的对象,并杀死死锁进程的方法[@more@]--kill session语句alter system kill session'50,492';--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ; SELECT * FROM v$locked_object; SELECT * FROM all_objects; SELECT * FROM v$session_wait;--1.查出锁定object的session的信息以及被锁定的object名SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username, l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_timeFROM v$l
LINUX环境下安装TIPTOP
LINUX环境下安装TIPTOP[@more@]用TIPTOP用户导入数据库export DBDATE=Y4MD/echo $DBDATE 确认一下dbimport ds_init –d dbs1导出数据库export DBDATE=Y4MD/echo $DBDATE 确认一下dbexport ds_init 测试机:PC-SERVER : IBM NETVISTA M/T 6345-87C1 CPU, 512M RAM一、 安装linux 7.2 根据安装提示,step by step, 注意:(1) swap >= 2*RAM(2) 设置主机名:ttperp , 固定ip : 10.4.2.252 , 255.255.255.0(3) Firewall Configuration : no firewall(4) Authentication : no MD5 、用shadow password(5) Package Group S
oracle 启动不了 ora-12514 error 解决办法
oracle 启动不了 ora-12514 error[@more@]oracle 启动不了 提示:ora-12514 error1.运行cmd 2.输入lsnrctl start 或stop 启动不了 提示TNS-12560,lsnrctl 路径错误3.进入注册表 HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesOracleOraHome92TNSListener建:ImagePath 字符值 :C:oracleora92binTNSLSNR.exe4. 重启OK!
转:类似SQL中的split函数
类似SQL中的split函数[@more@]create or replace type type_split as table of varchar2(50); --创建一个 type ,如果为了使split函数具有通用性,请将其size 设大些。--创建functioncreate or replace function split( p_list varchar2, p_sep varchar2 := ',') return type_split pipelined is l_idx pls_integer; v_list varchar2(50) := p_list;begin loop l_idx := instr(v_list,p_sep); if l_idx > 0 then pipe row(substr(v_list,1,l_idx-1)); v_list := substr(v_list,l_idx+
学习笔记-----一时间函数
一时间函数[@more@]create or replace procedure test( date_beg in varchar2, date_end in varchar2, duration_type in varchar2 )as beg_date date; end_date date; beg_month date; end_month date;begin if to_date(date_beg,'yyyy-mm-dd')>to_date(date_end,'yyyy-mm-dd') then dbms_output.put_line('beginning date must be earlier than end date'); else beg_date := to_date(date_beg,'yyyy-mm-dd'); end_date := to_date(date_end,'yyyy-mm-dd'); if duration_type=
学习笔记----一句SQL语句写个乘法表
一句SQL语句写个乘法表[@more@]select ltrim(max(sys_connect_by_path(product, ',')), ',') productfrom ( select rn, product, min(product) over(partition by rn) product_min ,(row_number() over(order by rn, product)) + (dense_rank() over(order by rn)) numId from ( select b.rn, a.rn || '*' || b.rn || '=' || a.rn * b.rn product from (select rownum rn from all_objects where rownum <= 9) a, (select rownum rn from all_objects where rownum <= 9) b where a.rn <= b.rn order by b
删除oracle表被锁住
运行一程序,用户把表给锁住,下面给出解决方案:[@more@]首先先查出SID,SELECT SUBSTR(all_objects.owner||'.'||object_name,1,16) "Locked Object",SUBSTR(os_user_name,1,10) "Tiptop User",v$locked_object.process "Proc ID",SUBSTR(terminal,1,7) "Terminal",v$session.sid,v$session.serial#,v$session.machine FROM v$locked_object,all_objects,v$session WHERE v$locked_object.object_id=all_objects.object_id AND v$locked_object.SESSION_ID=v$session.SID查出SID,然后在sqlp
掌握oracle与SQL区别用一加法运算来学习
加法运算[@more@]/* 写一个1+.....+100的加法运算 熟悉写法 loop等用法*/declarenum1 int:=0;i int:=1;beginloopnum1:=num1+i;if(i=100) thenexit;elsei:=i+1;end if;end loop;dbms_output.put_line('jieguo shi:'||num1);end;
Oracle分析函数{转}
Oracle分析函数[@more@]Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/human_resources/hr_main.sql来创建。少数几个例子需要访问SH用户下的表,如果没有安装该用户,可以在SYS用户下运行$ORACLE_HOME/demo/schema/sales_history/sh_main.sql来创建。如果未指明缺省是在HR用户下运行例子。 开窗函数的的理解:开
行转列问题
解决一网友提出的问题[@more@]代码:select * from ttt;T01 T02 T03-------------------- -------------------- --------------------1 3 41 5 6已选择2行。select distinct t01,max(decode(t02,3,t02)) as t02,max(decode(t03,4,t03)) as t03,max(decode(t02,5,t02)) as t04,max(decode(t03,6,t03)) as t05from tttgroup by t01T01 T02 T03 T04 T05-------------------- -------------------- -------------------- -------------------- --------------------1 3 4 5 6已选择 1 行
oracle字符串函数(转)
oracle字符串函数[@more@]ASCIIGet The ASCII Value Of A CharacterASCII(ch VARCHAR2 CHARACTER SET ANY_CS) RETURN PLS_INTEGER;SELECT ASCII('A') FROM dual;SELECT ASCII('Z') FROM dual;SELECT ASCII('a') FROM dual;SELECT ASCII('z') FROM dual;SELECT ASCII(' ') FROM dual; CASE Related FunctionsUpper CaseUPPER(ch VARCHAR2 CHARACTER SET ANY_CS)RETURN VARCHAR2 CHARACTER SET ch%CHARSET;SELECT UPPER('Dan Morgan') FROM dual;Lower CaseLOWER(ch VARCHAR2 CHARACTER SET ANY_CS)RETURN VARCHAR2 CHARACTER SET ch%CHARSE
学习 instr 和decode的用法
也是解决网友的题目[@more@]AA--------------------1.21.2341.231.2311.01.2121已选择7行。select decode((length(aa)-instr(aa,'.')), 1,(decode(instr(aa,'.'), 0, aa||'.'||'00',aa||'0')),2,aa,round(aa,3)) as D from abc;运行后数据:D--------------------------------------------------------------------------------1.201.2341.231.231.001.001.212
批量更新问题
帮ITPUB上一网友解决一问题[@more@]原始数据:ID NAME CLASSNAME SCORE SDATE FLAG---------- ---------- ---------- ---------- ---------- ----------001 TOM computer 80 1002 TOM music 90 2003 TOM music 60 3004 TOM music 65 4005 JACK computer 90 5006 JACK computer 80 6变更后的数据:ID NAME CLASSNAME SCORE SDATE FLAG---------- ---------- ---------- ---------- ---------- ----------001 TOM computer 80 1 Y002 TOM music 90 2 Y003 TOM music 60 3 N004 TOM music 65 4 N005 JACK computer 90 5 Y006 JACK computer 8
oracle-快速删除重复的记录
oracle-快速删除重复的记录[@more@]oracle-快速删除重复的记录1、通过创建临时表可以把数据先导入到一个临时表中,然后删除原表的数据,再把数据导回原表,SQL语句如下:creat table tbl_tmp (select distinct* from tbl);truncate table tbl;//清空表记录insert into tbl select * from tbl_tmp;//将临时表中的数据插回来。 这种方法可以实现需求,但是很明显,对于一个千万级记录的表,这种方法很慢,在生产系统中,这会给系统带来很大的开销,不可行。2、利用rowid在oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的