Oracle:Authid Current_User的使用
摘要:我们知道,用户拥有的role权限在存储过程是不可用的。遇到这种情况,我们一般需要显式授权,如grant create table to usera;但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程,实际上,oracle给我们提供了在存储过程中使用role权限的方法:修改存储过程,加入Authid Current_User时存储过程可以使用role权限。下面来举个例子: SQL> select * from v$version;BANNER----------------------------------------------------------------Orac
阅读全文
posted @
2011-02-17 22:25
马侃
阅读(12967)
推荐(0)
转:ORACLE NULL详解
摘要:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零。ORACLE允许任何一种数据类型的字段为空,除了以下两种情况:1、主键字段(primary key),2、定义时已经加了NOT NULL限制条件的字段说明: 1、等价于没有任何值、是未知数。2、NULL与0、空字符串、空格都不同。3、对空值做加、减、乘、除等运算操作,结果仍为空。4、NULL的处理使用NVL函数。5、比较时使用关键字用“is null”和“is not null”。6、空值不能被索引,所以查询时有些符合条件的数据可能查不出来,count(*)
阅读全文
posted @
2011-01-12 09:30
马侃
阅读(4931)
推荐(1)
exp和imp的用法和介绍
摘要:exp和imp的用法和介绍摘自:http://www.2umm.com/xxlr1.asp?id=15629 1、Export/Import的用处 Oracle Export/Import工具用于在数据库之间传递数据。 Export从数据库中导出数据到dump文件中Import从dump文件中到入数据导数据库中下面是一般使用他们的情况 (1)、两个数据库之间传送数据 同一个版本的oracle Server之间 不同版本的oracle Server之间 同种OS之间 不同种OS之间 (2)、用于数据库的备份和恢复 (3)、从一个
阅读全文
posted @
2010-12-14 19:08
马侃
阅读(1555)
推荐(0)
Oracle Cursor
摘要:1、概念游标:从字面来理解就是游动的光标。用数据库语言来描述,游标是映射在结果集中一行数据上的位置实体,有了游标,用户就可以访问结果集中的任意一行数据了。将游标放置到某行后,即可对该行数据进行操作,最常见的操作是提取当前行数据。2、分类2.1、静态游标:显式游标、隐式游标2.2、动态游标:强类型(限制)、弱类型(非限制)3、属性3.1、%ISOPEN 判断游标是否被打开,若打开,则%ISOPEN等于TRUE;否则等于FALSE。3.2、%FOUND 判断游标所在行是否有效。若有效,则%FOUND等于TRUE;否则等于FALSE。3.3、%NOTFOUND 与%FOUND相似,功
阅读全文
posted @
2010-12-10 18:33
马侃
阅读(10767)
推荐(1)
oracle10g建立物化视图的方法
摘要:对于oracle10g简单方法:1. 先建立一个物化视图,不用指明刷新参数,只要create materialized view,如CREATE MATERIALIZED VIEW mv_emp AS SELECT * FROM scott.emp;2. 建立一个用来刷新物化视图的存储过程,如CREATE OR REPLACE PROCEDURE auto_refresh_mview_job_p...
阅读全文
posted @
2010-11-24 10:43
马侃
阅读(1088)
推荐(0)
oracle 统计/分析函数
摘要:Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。 语法: Sql代码 <analytic-function>(<argument>,<argument>,...) over( <query-partition-clause> <order-...
阅读全文
posted @
2010-11-16 16:42
马侃
阅读(28063)
推荐(0)
利用Oracle内置分析函数进行高效统计汇总
摘要:分析函数是Oracle从8.1.6开始引入的一个新的概念,为我们分析数据提供了一种简单高效的处理方式。在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的SQL语句就可以实现了,而且在执行效率方面也有相当大的提高。下面我将针对分析函数做一些具体的说明。分析函数的一般格式是函数名(参数列表) over ([partition by 字段名或表...
阅读全文
posted @
2010-11-16 16:30
马侃
阅读(2073)
推荐(0)
show line number error on oracle
摘要:10g1、 设置DBMS_OUTPUT.put_line输出显示 SET SERVEROUTPUT ON2、 关闭DBMS_OUTPUT.put_line输出显示 SET SERVEROUTPUT OFF3、 设置DBMS_OUTPUT缓冲区大小 SET SERVEROUTPUT ON SIZE number(1000) dbms_output.enable(1000)4、 设置只显示DBMS_O...
阅读全文
posted @
2010-10-30 13:55
马侃
阅读(946)
推荐(0)
Oracle DB Link
摘要:利用DB Link两步搞定Oracle两个数据库间的表同步1,在目标机上建立Oracle DB Link:A,在network/admin/tnsname.ora文件中加入源库的连接信息,如:B,在目标机上用sqlplus user/pwd登录,用如下命令建立DB Link:命令说明:CREATE PUBLIC DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIF...
阅读全文
posted @
2010-09-10 14:37
马侃
阅读(1252)
推荐(0)
PL/SQL三种集合类型的比较
摘要:集合是指在一个程序变量中包含多个值。PL/SQL提供的集合类型如下:Associative Array:TYPE t IS TABLE OF something INDEX BY PLS_INTEGER;Nested Table:TYPE t IS TABLE OF something;VARRAY:TYPE t IS VARRAY (123) OF something;三种集合的各自使用范围前提...
阅读全文
posted @
2010-08-22 20:37
马侃
阅读(1492)
推荐(0)
Oracle PL/SQL中如何使用%TYPE和%ROWTYPE
摘要:1.使用%TYPE在许多情况下,PL/SQL变量可以用来存储在数据库表中的数据。在这种情况下,变量应该拥有与表列相同的类型。例如,students表的first_name列的类型为VARCHAR2(20),我们可以按照下述方式声明一个变量:DECLAREv_FirstName VARCHAR2(20);但是如果first_name列的定义改变了会发生什么(比如说表改变了,first_name现在的...
阅读全文
posted @
2010-08-22 20:00
马侃
阅读(474)
推荐(0)
Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题
摘要:在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为:1、编译该程序,可以正常通过;2、执行该程序exec getidlist,系统提示:ORA-01722: invalid number,ORA-06512: at "TT.GETIDLIST", line 6解决方案:此时修改getidlist代码如下:执行:execgetidlist;提示错误:ORA-...
阅读全文
posted @
2010-08-22 16:13
马侃
阅读(8876)
推荐(1)
数据库面试题目研究
摘要:摘录自:http://blog.csdn.net/cn_chenfeng/archive/2007/09/21/1794471.aspx一:SQL tuning类1.列举几种表连接方式Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)Or hash join/merge join/nest loop(cluster join)/index join??ORACLE 8i,9i表...
阅读全文
posted @
2010-08-21 02:18
马侃
阅读(9764)
推荐(1)
ORACLE中用rownum分页并排序的SQL语句
摘要:ORACLE中用rownum分页并排序的SQL语句以前分页习惯用这样的SQL语句:结果发现由于该语句会先生成rownum 后执行order by 子句,因而排序结果根本不对,后来在GOOGLE上搜到一篇文章,原来多套一层select 就能很好的解决该问题,特此记录,语句如下:==== 参考 ====http://yangtingkun.itpub.net/post/468/100278Oracle...
阅读全文
posted @
2010-08-20 17:52
马侃
阅读(76270)
推荐(1)
Oracle复制行记录的小技巧
摘要:需求:对于数据库的某些表,我们常要复制其对应的某条记录,新纪录与老记录仅有某一两个字段值不一样,其他完全一样。寻找简单的方案,而不是逐个字段拼Sql。解决方案1:解决方案2:备注:查询的 表名 与插入的 表名 可以不一样,例如,查询:descartes,插入descartes_history若有更好方法,请指教。
阅读全文
posted @
2010-08-20 15:57
马侃
阅读(10961)
推荐(0)
oracle数据库实例,数据库的理解
摘要:数据库就是一个相片底片实例就是相纸一个底片可以冲多个相纸,但一张相纸最多冲一个底片。tom的一个解释 数据库(database):物理操作系统文件或磁盘( disk)的集合。使用Oracle 10g 的自动存储管理(Automatic Storage Management,ASM)或RAW 分区时,数据库可能不作为操作系统中单独的文件,但定义仍然不变。 实例(instance):一组Oracle ...
阅读全文
posted @
2010-08-20 00:11
马侃
阅读(20620)
推荐(0)
ORACLE 数据库名、实例名、ORACLE_SID的区别
摘要:数据库名(DB_NAME)、实例名(Instance_name)、以及操作系统环境变量(ORACLE_SID) 在ORACLE7、8数据库中只有数据库名(db_name)和数据库实例名(instance_name)。在ORACLE8i、9i中出现了新的参数,即数据库域名(db_domain)、服务名(service_name)、以及操作系统环境变量(ORACLE_SID)。这些都存在于同一个数据...
阅读全文
posted @
2010-08-20 00:07
马侃
阅读(58510)
推荐(4)
Oracle Profile 使用详解
摘要:一、目的:Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用CreateProfile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。二、条件:创建profile必须要有CREATEPROFILE的系统权限。为用户指定资源限制,必须:1.动态地使用alter ...
阅读全文
Oracle表空间设计理念
摘要:SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献。可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的。 典型应用一:控制用户所占用的表空间配额。 在一些大型的数据库应用中,我们需要控制某个用户或者某一组用户其所占用的磁盘空间。这就好像在文件服务器中,需...
阅读全文
Oracle语句总结
摘要:1. 简单的SELECT 语句 asSELECT 字段名1 [AS] '字段名1 解释' FROM table;2. 处理NULLNVL函数可把NULL转换成其它类型的符号编程技巧: NVL函数在多条件模糊查询的时候比较有用NVL函数可返回多种数据类型:返回日期 NVL(start_date,'2002-02-01')返回字符串 NVL(title,'no title')返回数字 NVL(sala...
阅读全文