随风而行

^o^ 格言:相信没有做不到的事情,只有想不到的事情.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  Oracle

摘要:rank,dense_rank,row_number,以及分组排名partitionrank:排名会出现并列第n名,它之后的会跳过空出的名次,例如:1,2,2,4dense_rank:排名会出现并列第n名,它之后的名次为n+1,例如:1,2,2,3row_number:排名采用唯一序号连续值,例如1,2,3,4partition:将排名限制到某一分组格式:row_number() over(partition by bb.channel_name order by sum(aa.dk_serv_num) desc nulls last) p1_rank1,row_number() over(o 阅读全文

posted @ 2012-12-10 11:04 随风而行 阅读(10850) 评论(0) 推荐(0)

摘要:原文位于:http://www.itpub.net/viewthread.php?tid=610297&extra=page%3D2%26amp%3Bfilter%3Ddigest&page=2把'a|||b|||c'字符串分隔成abccreate or replace function f_test(var_str in string) return t_ret_table isvar_out t_ret_table;var_tmp varchar2(2000);var_element varchar2(2000);beginvar_tmp := var_st 阅读全文

posted @ 2012-04-24 11:28 随风而行 阅读(199) 评论(0) 推荐(0)

摘要:==========================================================作者: hanjs(http://hanjs.itpub.net)发表于: 2007.02.03 17:24分类: oracle出处: http://hanjs.itpub.net/post/28217/260065---------------------------------------------------------------下面是转自itpub上zhouwf0726的一篇文章上对于字符串的处理,但是我个人还是认为写一个字定义函数来处理比较通用。/*怎样支掉字符串中 阅读全文

posted @ 2012-04-24 11:28 随风而行 阅读(14949) 评论(0) 推荐(0)

摘要:一、字符转换函数1、ASCII()返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。2、CHAR()将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。3、LOWER()和UPPER()LOWER()将字符串全部转为小写;UPPER()将字符串全部转为大写。4、STR()把数值型数据转换为字符型数据。STR (<float_expression>[,length[, <decimal>]])length 指定返 阅读全文

posted @ 2009-04-16 22:44 随风而行 阅读(287) 评论(0) 推荐(0)

摘要:1、loopdeclare x number:= 0;begin x:=0; loop x:=x+1; /*if x>=10 then exit; end if;*/ exit when x>10; -- 此句与上面的if语句作用相同,但这样简练。 DBMS_OUTPUT.PUT_LINE('内 :x='||x); end loop; DBMS_OUTPUT.PUT_LINE('外:x='||x);end; 2、whiledeclare x number;begin x:=0; while x<=10 loop x:=x+1; DBMS_OUT 阅读全文

posted @ 2009-04-02 11:37 随风而行 阅读(392) 评论(0) 推荐(0)

摘要:首先了解数据库不同启动:关闭由2种方式:通过服务管理控制器(管理中服务项)OracleServise[sid] ,彻底的关闭通过sql*plus语句:shutdown命令不彻底 {空闲的实例}它可以用sql*plus语句连接上 shutdown不能分步做 只能回到空闲的状态shutdown [normal]shutdown TRANSACTIONALshutdown immediateshutdown abort(repuires instance reco very when the database is started the next time.)?shutdown TRANSACTI 阅读全文

posted @ 2009-04-02 11:05 随风而行 阅读(177) 评论(0) 推荐(0)

摘要:insert insert 表是最常见的,也可以插入VIEW,除了下列情况:1)distinct 操作2)set 操作(如UNION,MINUS等等)3)一些计数操作(SUM,count,avg等等)4)group by ,order by , connect by 要点5)在select中的子查询updateupdate 表set delete delete from 表 where 条件undo 管理undo的优点:可以允许用户rollback查询读一致性支持flashback 查询,看表在过去如何被lock的在oracle 9i 10g时候undo管理默认为自动参数undo_manage 阅读全文

posted @ 2009-04-02 10:41 随风而行 阅读(217) 评论(0) 推荐(0)

摘要:注意点: 1.在Oracle8.1.6安装在WIN2000下创建数据库时,常常会发生凭证检索失败的错误。这是由于Oracle不能应用OS认证的结果。一般可以通过修改sqlnet.ora中SQLNET.AUTHENTICATION _SERVICES为NONE来解决。这时,Oracle将采用密码文件认证方式。 2.由于Oracle有几个系统预建的用户,所以最好在安装完成以后马上改变这些用户的密码。系统默认得密码分别为:internal/oracle , sys/change_on_install, system/manager. 3.当选择密码文件认证方式时,可以再向系统中加入其他超... 阅读全文

posted @ 2009-04-02 10:37 随风而行 阅读(305) 评论(0) 推荐(0)

摘要:Oracle 的用户根据所被授予的权限分为系统权限和对象权限。其中最高的权限是sysdba。 Sysdba具有控制Oracle一切行为的特权,诸如创建、启动、关闭、恢复数据库,使数据库归档/非归档,备份表空间等关键性的动作只能通过具有sysdba权限的用户来执行。这些任务即使是普通DBA角色也不行。Sysoper是一个与sysdba相似的权限,只不过比sysdba少了SYSOPER privileges WITH ADMIN OPTION,CREATE DATABASE,RECOVER DATABASE UNTIL这几个权限而已。这两者的认证方式是相同的办法,所以下面只介绍sysdba的认证管 阅读全文

posted @ 2009-04-02 10:36 随风而行 阅读(322) 评论(0) 推荐(0)

摘要:在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或oper的权限,只考虑普通用户的权限),分别是System Privilege系统权限 和User Table Privilege用户数据表权限.1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了):create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PWgrant create session to DB_USER '给用户创建会话的权限grant resource 阅读全文

posted @ 2009-04-02 10:33 随风而行 阅读(1090) 评论(0) 推荐(0)

摘要:在Oracle数据库中,用户的权限分为两种(在这里我们不讨论dba或dbopr的权限,只考虑普通用户的权限),分别是System Privilege系统权限 和User Table Privilege用户数据表权限. 1.首先,创建用户,以下几条命令可以创建一个用户,前提是必须以DBA的身份登录(如果你不是DBA,不要看下去了): create user DB_USER identified by DB_USER_PW '创建用户DB_USER,密码为DB_USER_PW grant create session to DB_USER '给用户创建会话的权限 gr... 阅读全文

posted @ 2009-04-02 10:30 随风而行 阅读(1339) 评论(0) 推荐(0)

摘要:权限分为object privileges,system privileges,role provileges.这些权限可以授予给用户、特殊用户public或角色,如果授予一个权限给特殊用户"Public"(用户public是oracle预定义的,每个用户享有这个用户享有的权限),那么就意味作将该权限授予了该数据库的所有用户。1,授予对象权限表对象的权限select insertupdatedeletealter debugindexreferences视图权限select insertupdatedeletedebugrefenence次序权限select alter如: 阅读全文

posted @ 2009-04-02 10:27 随风而行 阅读(537) 评论(0) 推荐(0)

摘要:Oracle Shared Server(OSS)笔记 (zt) =========================================================== 作者: tolywang(http://tolywang.itpub.net)发表于:2007.07.19 09:59分类: Oracle数据库管理 出处:http://tolywang.itpub.net/post/48/309884--------------------------------------------------------------- 1、overview:dedicated Serv 阅读全文

posted @ 2009-04-02 10:23 随风而行 阅读(347) 评论(0) 推荐(0)

摘要:SQL>showuser;显示当前用户(在SQL*Plus工具中专用的,更好的方式是使用SQL>selectuserfromdual;语句进行查看当前用户,其中dual表是每个SQL*Plus用户都可以使用的Oracle表,这里真正重要的是要知道它只含有一行数据。); SQL>setpagelize20;设置每页显示行数为20; SQL>setlinesize100;设置每行显示的字符数为100;(如果嫌每次设置麻烦,可以将这两条语句保存在C:\oracle\ora92\sqlplus\admin\glogin.sql中,每次启动是Oracle会自动运行glogin.s 阅读全文

posted @ 2009-04-02 10:22 随风而行 阅读(288) 评论(0) 推荐(0)

摘要:在连接数据库服务器之前,先要在Windows的控制面板――管理工具――服务中开启两个和Oracle有关的服务,即:OracleOraHome92TNSListener(监听器服务)和OracleServiceCHSTONE(实例服务),如果本机作服务器,并且不接受远程客户端登陆的话,可以只开后面一个实例服务就行了。 建立连接:开始-程序-Oracle-OraHome92-ApplicationDevelopment-SQLPlus,出现登录对话框,输入用户名和口令,主机字符串就是前面配置的Net服务名,如果为空,表示连接本机上默认数据库。 使用开始-运行建立连接的方法:直接输入“sqlplus 阅读全文

posted @ 2009-04-02 10:21 随风而行 阅读(966) 评论(0) 推荐(0)

摘要:手动配置服务器端监听器:监听器配置包括监听协议、地址以及其他相关信息的参数。监听器配置存储在一个名称为listener.ora的配置文件中,该文件位于ORACLE_HOME\network\admin目录下。(ORACLE_HOME为Oracle软件的安装目录,后同。) Listener.ora配置文件中的内容如下(可以使用EditPlus等文档编辑工具打开): #LISTENER.ORANetworkConfigurationFile:e:\oracle\ora92\network\admin\listener.ora #GeneratedbyOracleconfigurationtools 阅读全文

posted @ 2009-04-02 10:18 随风而行 阅读(731) 评论(0) 推荐(0)

摘要:oracle net几种连接方式1 local naming连接方式如: CONNECT username/password@SERVICE_NAME (我们常用的就是这个)修改tnsnames.ora文件,如下:sales=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sales-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=sales.us.acme.com)))sqlnet.ora 文件如下:NAMES.DIRECTORY_PATH=(tnsnames, hostname)2 directory nam 阅读全文

posted @ 2009-04-02 10:12 随风而行 阅读(378) 评论(0) 推荐(0)

摘要:Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方. 下面介绍一下关于sequence 的生成,修改,删除等常用的操作: 1. 创建 Sequence 使用如下命令新建sequence(用户需要有CREATE SEQUENCE 或者CREATE ANY SEQUENCE权限): CREATESEQUENCE test_sequence INCREMENTBY1 --每次加的个数据STARTWITH1 --从1开始计数NOMAXVALUE --不设置最大值NOCYCLE --一直累加,不循环CACHE10 ;[注... 阅读全文

posted @ 2009-04-02 10:10 随风而行 阅读(313) 评论(0) 推荐(0)

摘要:PRIMARY KEY or UNIQUE是BTREE 索引索引有两个:BTREE和BITMAP建立索引默认都是btree如 create index emp_dept_nbr ON employees (dept_nbr)也可以建立一个unique index如create unique index dname_uix ON departments (dept_name);同时可以在一个表上建立多个索引CREATE INDEX emp_seniority ONemployees (dept_nbr, hire_date)TABLESPACE indx;建立位图索引CREATE BITMAP 阅读全文

posted @ 2009-04-02 10:06 随风而行 阅读(197) 评论(0) 推荐(0)

摘要:两种方法当前会话提交事务时保存临时表数据,当前会话结束时删除临时表数据,其它会话不能看到该会话中该临时表的数据。CREATEGLOBALTEMPORARYTABLEtable(murkeyvarchar2(10)));ONCOMMITPRESERVEROWS;与上不同的是提交事务时删除临时表中数据。CREATEGLOBALTEMPORARYTABLE(NORMALFIELDDESC)ONCOMMITDELETEROWS; 阅读全文

posted @ 2009-04-02 10:04 随风而行 阅读(173) 评论(0) 推荐(0)