oracle
韩王-信
无成有终含章可贞
展开
-
Oracle 中 将多行列值按照顺序合并成单值输出(connect by)
使用 oracle 树形函数来处理,connect by 具体语法见:http://www.2cto.com/database/201109/106309.html我的测试:--create a new temporary tablecreate global temporary table weitest(id number,name varchar2(200),para num原创 2013-08-30 08:59:49 · 2247 阅读 · 0 评论 -
oracle 利用标签退出外层循环
declarex number :=10;begin> loop dbms_output.put_line(x); x:=x-1; exit out when x end loop;end;原创 2013-08-31 17:00:40 · 907 阅读 · 0 评论 -
oracle for 循环中倒序 用reverse
declarebegin>for i in reverse 1..3 loop> for i in 4..6 loop dbms_output.put_line(outer.i); dbms_output.put_line(inner.i); end loop;end loop;end;原创 2013-08-31 17:00:44 · 7842 阅读 · 0 评论 -
oracle insert 使用append提示跳过缓存
--使用append 提示将跳过数据块缓存直接插到存储空间尾部,这通常会更快很适合大量的数据插入,insert /*+ append*/ into t1 select * from t2原创 2013-09-01 14:04:45 · 1597 阅读 · 0 评论 -
oracle 闪回查询
--闪回查询--根据时间闪回select *from test2 as of timestamp (sysdate-5/24/60);--根据SCN闪回select dbms_flashback.get_system_change_number from dual;---get 1050795select *from test2 as of scn 1050原创 2013-09-01 14:05:41 · 685 阅读 · 0 评论 -
oracle with 用法
with sql1 as (select to_char(a) s_name from test_tempa), sql2 as (select to_char(b) s_name from test_tempb where not exists (select s_name from sql1 where rownum=1)) select * from sql1 union all原创 2013-09-01 14:05:55 · 614 阅读 · 0 评论 -
oracle 创建临时表的几种方法
会话临时表 和事物临时: Create Global Temporary Table Table_Name (Col1 Type1,Col2 Type2...) On Commit Preserve Rows ; Create Global Temporary Table Table_Name (Col1 Type1,Col2原创 2013-09-01 14:05:49 · 2900 阅读 · 0 评论 -
oracle delete 和 truncate
一、1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些. Truncate table does not generate rollback information and redo records so it is much faster原创 2013-09-02 09:31:53 · 822 阅读 · 0 评论 -
oracle 多表插入
语法INSERT FIRSTWHEN condition THEN insert_into_clause values_clause[WHEN condition THEN] [insert_into_clause values_clause]……[ELSE] [insert_into_clause values_clause]Subquery;------------原创 2013-09-02 09:31:50 · 727 阅读 · 0 评论 -
oracle 删除重复记录
语法:查询及删除重复记录的SQL语句 1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断 select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1) 2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录原创 2013-09-01 14:05:51 · 622 阅读 · 0 评论 -
oracle 触发器
create global temporary table name(id number) on commit delete rows;create global temporary table name2(id number) on commit delete rowsselect * from name;select * from name2触发器类型,1. 语句级原创 2013-09-02 10:58:29 · 627 阅读 · 0 评论 -
contos linux ORA-2730错误
以root身份编辑 /etc/sysctl.conf 增加kernel.sem = 250 32000 100 128保存后执行sysctl -p 生效原创 2013-11-16 14:03:52 · 837 阅读 · 0 评论 -
contos oracle ORA-12162 TNS net service name is incorrectly specified
在/etc/profile 下加入:export ORACLE_SID=PSI原创 2013-11-17 07:53:01 · 933 阅读 · 0 评论 -
oracle常用视图
1 Oracle常用数据字典表1、 查看当前用户的缺省表空间SQL>select username,default_tablespace from user_users; 2、 查看当前用户的角色SQL>select * from user_role_privs;3、 查看当前用户的系统权限和表级权限SQL>select * from user_sys_privs;SQ转载 2013-11-17 11:06:07 · 842 阅读 · 0 评论 -
解决oracle11g ORA-00119 ORA-00132方法
今天在启动服务器上的ORACLE时遇到如下错误:SQL> startup; ORA-00119: invalid specification for system parameter LOCAL_LISTENERORA-00132: syntax error or unresolved network name 'LISTENER_ORCL' 然后,在网上找了一些资料,解决转载 2013-11-17 08:18:46 · 1603 阅读 · 0 评论 -
oracle 基本日期操作
----基本的日期操作--获取系统时间select sysdate from dual;---获取当前时区时间select current_date from dual;--基本的日期格式符号(抄录自http://www.douban.com/note/28690368/ 感谢原文作者分享的事例代码)--Y或YY或YYY 年的最后一位,两位或三位 Selec原创 2013-09-01 14:04:57 · 860 阅读 · 0 评论 -
oralce 在sqlplus下查看当前实例的名称
show parameter name或select name from v$database;转载 2013-12-03 22:07:57 · 8891 阅读 · 0 评论 -
plsql中索引表(pls/ql表)的使用
pl/sql表,又称为索引表,在oracle9i以后就被称之为pl/sql表了。它是plsql语言数据类型中集合类型。Pl/sql是plsql所特有的、单维的、无容量限制的、离散的存储的列表结构。用于存储多行单列的数据。语法:Type is table of index by ; ;注意:‘表类型名’是用户自己定义的,‘数据类型’是表中字段的数据类型 ,‘索引的类型’现在可以是转载 2013-12-04 14:55:22 · 3659 阅读 · 0 评论 -
oracle 使用标签来嵌套使用变量和重复标签的问题
---使用标签>>DECLAREname long:='weihongrao';age long:='lao';BEGIN > declare name long:='huangjinfeng'; begin dbms_output.put_line(out1.name); dbms_output.put_line(age); db原创 2013-08-31 17:00:22 · 919 阅读 · 0 评论 -
oracle的merge into
select * from t1 ;4 china5 usaselect * from t2 ;1 wei4 hong5 raomerge into t1 using(select * from t2)t2 on(t1.id=t2.id)when matched then update set t1.name=t2.nam原创 2013-08-31 17:00:00 · 498 阅读 · 0 评论 -
round he trunc
TRUNC(for dates)TRUNC函数为指定元素而截去的日期值。其具体的语法格式如下: Oracle TRUNC(date[,fmt]) 其中:date 日期值fmt 日期格式,按该格式截取日期。不指定,默认为年月日形式。看测试:--更改Oracle默认的系统时间形式显示为yyyy-mm-dd hh24:mi:ss格式S转载 2013-08-30 08:58:02 · 715 阅读 · 0 评论 -
oracle 批量查询DDL
SELECT DBMS_METADATA.GET_DDL(U.OBJECT_TYPE, u.object_name)FROM USER_OBJECTS uwhere U.OBJECT_TYPE IN ('TABLE','INDEX','PROCEDURE','FUNCTION');原创 2013-08-30 08:59:43 · 1885 阅读 · 0 评论 -
oracle union intersect minus
---并,交,差集---虽然有时候可以用in等代替---union ,union all,minus,intersectcreate table t1 as select 1 as id from dual union select 2 as id from dual union select 3 as id from dualcreate table t2 as se原创 2013-08-31 16:59:50 · 544 阅读 · 0 评论 -
oracle 索引
---´´½¨Ë÷Òý select * from t1---BÊ÷Ë÷Òýcreate unique index Bindex on t1(id)drop index Bindex-----´´½¨Î»Í¼Ë÷Òýcreate bitmap index mapinex on t1(id)1.BÊ÷Ë÷ÒýÒ»°ãÓ¦ÓÃÓë·Ç原创 2013-08-31 17:00:14 · 772 阅读 · 0 评论 -
oracle 分区表
--设定分区alter table t1 rename to hongraoselect * from hongrao ;---创建范围分区create table asd(id number)partition by range(id)(partition part1 values less than(4) , partition part2 valu原创 2013-08-31 17:00:12 · 640 阅读 · 0 评论 -
oracle 存储过程中嵌套函数定义
--定义一个存储过程 里面定义一个函数和一个子的存储过程create or replace procedure checks(firstNum in number) issecondNum number:=100;function checkScore return number issecondNum number:=-100;beginif checks.first原创 2013-08-31 17:00:27 · 3865 阅读 · 0 评论 -
oracle 绑定变量和动态sql
declare l_dept pls_integer := 20; l_nam varchar2(20); l_loc varchar2(20); begin execute immediate 'select dname, loc from dept where deptno = :1' into l_nam,原创 2013-09-01 14:05:27 · 3554 阅读 · 0 评论 -
oracle使用 rollup 和cube
create table sale(p varchar2(20),s varchar2(20),sale number)select * from sale for update;select *from sale 1 jiangsu suzhou 3422 jiangsu nanjing 423 guangdong原创 2013-08-31 17:00:03 · 490 阅读 · 0 评论 -
deocde 中的大小等于判断
----deocde 中的大小等于判断select * from t1select decode(sign(id-4),0,'==4',1,'>4','<4') from t1原创 2013-08-31 17:00:04 · 577 阅读 · 0 评论 -
oracle 异常
-- Created on 8/30/2013 by 024911 declare -- Local variables here i integer; j integer;begin -- Test statements here i:=0; j:=10/i; exception when others then dbms_outp原创 2013-08-31 17:00:22 · 483 阅读 · 0 评论 -
oracle 几种游标循环的区别
declare cursor vs is select * from ts; c vs%rowtype;begin----使用while来做游标循环的时候一定要注意,如果使用%found在while条件中一定要记得在此之前---先fetch 第一条数据到变量,所以以下会出现两个fetchopen vs;fetch vs into c;while vs%fou原创 2013-08-31 17:00:42 · 2514 阅读 · 0 评论 -
oracle 闪回表
create table ass (name varchar2(220));select *from ass;drop table ass;select *from ass;flashback table ass to before drop rename to aa;select * from dba_recyclebin;select * from原创 2013-09-01 14:05:30 · 685 阅读 · 0 评论 -
oracle 恢复被删除的存储过程或者表等
oracle 所有的对象定义语句都可以从all_source 中找到,所以只需要闪回查询该表就可以得到被删除的对象的定义语句;如果恢复表等可以直接用语句:flashback table 表名 to before drop原创 2013-09-01 14:05:32 · 1144 阅读 · 0 评论 -
oracle 双引号作为变量名
字符串中单引号是用连续的两个单引号来表示的,双引号只是一个标示符,所以双引号可以不成对出现,双引号可以作为变量名称使用:而且使用的时候可以去掉双引号而且不区分大小写使用:以下的列子是可以执行成功的: declare "WEI" long;begin wei:='hi'; DBMS_OUTPUT.put_line(wei); end;但是如果把变量原创 2013-08-31 17:00:19 · 1061 阅读 · 0 评论 -
oracle 集合操作
/*oracle 集合操作函数1.DELETEProcedureDeletes elements from collection.2.TRIMProcedureDeletes elements from end of varray or nested table.3.EXTENDProcedureAdds elements to end of var原创 2013-08-31 17:00:46 · 770 阅读 · 0 评论 -
oracle 返回结果集(ref curssor)到客户端
网上的说法:有俩种方法:一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为in out 或out(1)声明个人系统游标.(推荐)create or replace p_temp_procedure( cur_arg out sys_refcursor; --方法1)begin open cur_arg for se原创 2013-09-01 14:05:26 · 924 阅读 · 0 评论 -
Oracle导出数据到txt中
方法一:使用SQLPlus的spool命令操作步骤1. 新建一个脚本文件,存放起来,如D:\spool.sql,具体代码如下Sql代码 set echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句 set feedback off --是否显示当前sql语句查询或修改的行数 set newpage none --会在转载 2013-12-18 10:20:31 · 1515 阅读 · 0 评论