PL/SQL
文章平均质量分 55
Asher
这个作者很懒,什么都没留下…
展开
-
ORA-01722隐式转换
1.创建测试表SQL> create table t(name varchar2(10));2.插入数据SQL> insert into t values('123');SQL> select * from t;NAME----------1233.执行正常sql并获取执行计划SQL> select * from t where name='123'原创 2014-12-10 11:23:28 · 777 阅读 · 0 评论 -
Oracle横向纵向汇总
有一张表test 如下, (NO 学生编号 ,cj 成绩)NO name KM CJ001 张三 语文 80 001 张三 数学 86 001 张三 英语 75 002 李四 语文 78 002 李四 数学 85 002 李四 英语 78写了以下语句来算每项个科目的总分,select decode(grouping(name),1,'总分',name)转载 2013-10-12 10:27:09 · 1375 阅读 · 0 评论 -
oracle保存小数点前为"0"的问题
SQL> column num format 99999999999.9999999999999SQL> select * from t1_number; NUM-------------------------- .3268000000000 .5796568600000原创 2013-08-08 11:12:40 · 4789 阅读 · 0 评论 -
Oracle中start with...connect by prior子句
在做权限的时候可能经常会碰到需要读取树形结构数据,Oracle则提供了start with...connect by prior子句;例如:select t.bas_ts_resource_id,t.name_zh,SYS_CONNECT_BY_PATH (t.bas_ts_resource_id, '/') as pathOrder from (select * from BAS_原创 2013-04-19 09:10:50 · 1035 阅读 · 0 评论 -
Oracle总结
一、Oracle安装1、 Oracle服务2、 Oracle用户和权限3、 客户端链接Oracle服务器4、 Oracle是基于对象的关系型数据库,产品免费,服务收费。二、Oracle数据操作和查询1、Oracle语言2、Oracle数据类型3、创建表和约束ALTER TABLE 表名 ADDCONSTRAINT 约束名 约束内容注意:Oracl原创 2012-04-14 09:43:22 · 705 阅读 · 0 评论 -
Lpad()函数与Rpad()函数的格式、用法
Lpad()函数的用法:lpad函数将左边的字符串填充一些特定的字符其语法格式如下: lpad(string,n,[pad_string]) string:可是字符或者参数 n:字符的长度,是返回的字符串的数量,如果这个数量比原字符串的长度要短,lpad函数将会把字符串截取成从左到右的n个字符; pad_string:是个可选参数,这个字原创 2013-03-26 10:48:52 · 2072 阅读 · 0 评论 -
Oracle分组函数之ROLLUP
1)创建测试表group_testSECOOLER@ora11g> create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);Table created.2)初始化数据insert into group_test values (10,'Coding',转载 2013-04-03 14:41:42 · 839 阅读 · 0 评论 -
SP2-0171: 帮助系统不可用
SQL*PLUS 是oracle管理数据库最常用的一个CMD界面,其中的帮助系统会给我们执行一些命令带来快捷的指导和帮助,在oracle安装时此功能是默认安装的。有时候由于一些意外原因会失去此项功能,使用帮助系统会出现下面的错误: SP2-0171: 帮助系统不可用。 以至于带来很多的不便和麻烦。下面是解决此问题的方法,也是官方推荐的方法步骤,在oracle帮助文档中均可获知,此处原创 2013-04-03 11:09:49 · 1614 阅读 · 0 评论 -
解决oracle 11g不能导出空表
在oracle 11g r2新特性中,发现传统的exp不能导出空的表,oracle 11g 新增了一个参数:deferred_segment_creation,含义是段延迟创建,默认是true。如果这个参数设置为true,你新建了一个表T1,并且没有向其中插入数据,那么这个表不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间。这样可以节省少量的空间。原创 2013-01-23 09:43:39 · 1091 阅读 · 0 评论 -
Oracle之SYS_CONNECT_BY_PATH
oracle 分析函数之 SYS_CONNECT_BY_PATH 函数SYS_CONNECT_BY_PATH 函数SYS_CONNECT_BY_PATH 和几个伪列CONNECT_BY_ROOT,CONNECT_BY_LEAF,CONNECT_BY_ISCYCLESYS_CONNECT_BY_PATH 函数自从Since Oracle 9i 开始,就可以通过 S原创 2012-12-10 16:37:59 · 867 阅读 · 0 评论 -
Oracle v$sqlarea
V$SQLAREA 本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。 V$SQLAREA中的信息列 HASH_VALUE:SQL语句的Hash值。 ADDRESS:SQL语句在SGA中的地址。 这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash原创 2012-12-06 11:21:12 · 1247 阅读 · 0 评论 -
Oracle 之 over partition by
1、查询出部门的最低工资的雇员号 ,有位高人给出了答案如下: SELECT MIN(SAL) OVER(PARTITION BY DEPTNO) SALARY ,DEPTNO FROM EMP该答案确实实现了各部门的最低雇员薪资,但却没有给出具体的雇员,于是又如下:SELECT EMPNO, ENAME, SAL,MIN(SAL) OVER(PARTITION BY DEP原创 2013-10-18 17:40:31 · 1077 阅读 · 0 评论 -
Oracle 物化视图
一. 物化视图概述Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照。 物化视图可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。物化视图有很多方面和索引很相似:使用物化视图的目的是原创 2013-11-14 15:41:29 · 891 阅读 · 0 评论 -
Oracle 拆分合并行
多列合并成一行:STORE_NO APPLY_NOATTACH_NAMECREATE_DATE12 20130828000345 acc1ae055a1d47bdba8069420b08bf13.jpg 2013-08-28 4:09:3006 20130828000345 61e815edf3ba4cbd92b0c5eca53e1a4f.gif 2013-08-28 4:07:55原创 2013-10-15 10:43:00 · 1156 阅读 · 0 评论 -
oracle 用户密码过期
Oracle 11g 之前默认的用户时是没有密码过期的限制的,在Oracle 11g 中默认的profile启用了密码过期时间是180天。如下:select * from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';过期的密码可用alter user userXXX identi原创 2014-12-01 09:30:33 · 677 阅读 · 0 评论 -
ORACLE 存储过程被锁,编译不了问题
首先查找存储过程被哪些session锁住而无法编译:原创 2014-08-18 11:31:17 · 2041 阅读 · 0 评论 -
分组查询取最大时间记录的多种方式
sql语句:create table dispatch_result ( dr_id number not null, sheet_id number, check_next varchar(20), check_time原创 2012-08-15 13:11:05 · 6121 阅读 · 3 评论 -
Oracle远程连接
首先到Oracle官网下载需要的配置http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html配置服务器tnsnames.ora文件,如果本机上没有安装oracle,可以从安装了oracle的机上拷贝一个(tnsnames.ora文件)放在指定目录下。ORCL =原创 2012-09-11 11:25:26 · 1536 阅读 · 0 评论 -
SELECT语句逻辑执行顺序
SELECT语句的逻辑执行顺序:FROMONJOINWHEREGROUP BYWITH CUBE or WITH ROLLUPHAVINGSELECTDISTINCTORDER BYTOPMICROSOFT指出,SELECT语句的实际物理执行顺序可能会由于查询处理器的不同而与这个顺序有所出入。原创 2014-04-23 09:48:41 · 760 阅读 · 0 评论 -
Oracle MERGE INTO的用法
很多时候我们会出现如下情境,如果一条数据在表中已经存在,对其做update,如果不存在,将新的数据插入.如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要写更多的代码,同时性能也不好,要来回数据库两次.使用merge的话则可以一条SQL语句完成.1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在原创 2014-05-04 11:40:50 · 1407 阅读 · 0 评论 -
Oracle RANK函数
其实现在Oracle对于rank和dense_rank已经支持合计功能,不过这次我仅仅使用了其分析功能。具体语法如下:RANK ( ) OVER ( [query_partition_clause] order_by_clause )。 下面给出一些来自网上的示例: TABLE:S (subject,mark) 数学,80 语文,70 数学,90 数学,60转载 2014-03-20 13:24:27 · 1239 阅读 · 0 评论 -
Oracle Sequences和union同时使用
有些时候我们使用sql批量新增会使用到union a'l'l原创 2014-04-16 13:19:06 · 1622 阅读 · 1 评论 -
oracle 多列取最大值最小值
SELECT GREATEST('36', '55', '34') V_MAX, LEAST('36', '55', '34') V_MIN FROM DUAL原创 2014-03-06 13:14:39 · 6109 阅读 · 0 评论 -
Oracle directory
Oracle提供的文件操作包UTL_FILE包中的UTL_FILE.FOPEN负责打开一个文件。 UTL_FILE.FOPEN(location in varchar2, filename in varchar2, open_mode in varchar2) return FILE_TYPE; Location 是路径参数, FILENAME 是文件名, OPEN_MODE是原创 2014-02-20 15:19:53 · 809 阅读 · 0 评论 -
Oracle一些特殊的语句
---查询正在执行的SQL---select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXTfrom v$session a, v$sqlarea b where a.sql_address = b.address ---查询执行过的select b.SQL_TEXT,b.FIRST_LOAD_TIME,b.SQL_FULLTEXTfrom原创 2012-12-06 10:57:34 · 793 阅读 · 0 评论 -
Oracle数据迁移
首先如果是大型应用并且数据量确实非常大推荐直接使用ORACLE,不建议从SQL SERVER后期迁移,因为迁移的成本是非常高的(包括停机成本,测试,以及承担BUG的风险等)。例如:SQL SERVER 到ORACLE。主要有以下几个问题 1、数据类型差异: 尽管大多数数据类型通用,但仍有专属数据类型,例如ORACLE的LOG SEGMENT、ROWNUM伪劣等。这些数据类型有其原创 2012-09-17 10:23:18 · 1080 阅读 · 0 评论 -
集合运算
1.INTERSECT(交集),返回两个查询共有的记录。2.UNION ALL(并集),返回各个查询的所有记录,包括重复记录。3.UNION(并集),返回各个查询的所有记录,不包括重复记录。4.MINUS(补集),返回第一个查询检索出的记录减去第二个查询检索出的记录之后剩余的记录。eg:select匹配字段 from dept 集合运算符 select 匹配字段 from emp原创 2012-04-13 12:55:07 · 909 阅读 · 0 评论 -
游标
一、显示游标1.1、游标属性%ISOPEN用于确定游标是否打开,如果打开返回TRUE,否则FLASE。%FOUND用于检查是否从结果集中提取到了数据,如果取到数据返回TRUE,否则FALSE。%NOTFOUND用于检查是否从结果集中提取到了数据,如果取到数据返回FALSE,否则TRUE。%ROWCOUNT该属性用于返回当前行为止已经提取到的实际行数。2、显示使用游标2、原创 2012-04-13 12:05:33 · 705 阅读 · 1 评论 -
Oracle异常
异常:在程序运行时出现的错误。BEGIN EXCEPTION WHEN 异常名 THEN 对应异常处理; WHEN 异常名 THEN 对应异常处理; WHEN 异常名 THEN 对应异常处理;END;异常发生时,进入异常处理部分,具体异常与若干个WHEN子句中知名的异常名匹配,匹配成原创 2012-04-13 12:09:27 · 654 阅读 · 0 评论 -
oracle 禁止操作系统认证登录
最基本的方法就是使用“sqlplus / as sysdba”登录数据库sqlplus / as sysdba斜杠“/”左面是用户名,右面是密码,这里表示不给出用户名和密码一样可以登录到数据库系统中使用错误的用户名和密码登陆数据库sqlplus wind/dfsdfsfd as sysdba 即使使用的是错误的用户名和密码依然可以顺利的登录到数据库中原创 2012-05-23 13:25:46 · 1180 阅读 · 0 评论 -
sqlnet.ora常用参数
在修改sqlnet.ora文件之后重新啟動監聽﹐修改才能生效﹗﹗﹗1.设置日志参数#设置客户端和服务器端的log文件的目录LOG_DIRECTORY_CLIENTLOG_DIRECTORY_SERVER#设置客户端和服务器端的log文件的名称LOG_FILE_CLIENTLOG_FILE_SERVER2.设置默认的domain,会在连接中自动追加domain转载 2012-06-01 09:34:40 · 1323 阅读 · 0 评论 -
oracle的多表insert操作
在一般操作中,我们可能会碰到一些相同或者雷同的数据源要插入到不同的数据表中的情况Oracle9i引入了多表insert操作, 采用以下三个形式.Unconditional(无条件的): 没有任何限制地向多个表中插入给定表的数据;Pivoting: 用一个非规范化的结构把数据插入到一个或多个表中.Conditional(有条件的): 根据已有的特定条件对每个约束进行控制.表ADD原创 2012-06-01 09:28:37 · 2192 阅读 · 1 评论 -
Oracle导入导出
导出(导入)要使用到 %ORACLE_HOME%/db_1/BIN/exp.exe(imp.exe)可以配置环境变量path,然后直接使用exp命令-------------------------------------------------------------------------------------------· 导出 : 导出表,导出方案,导原创 2012-04-14 18:03:41 · 821 阅读 · 0 评论 -
Oracle正则表达式
Oracle 正则表达式Oracle 正则表达式 就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。本文详细地列出了能在正则表达式中使用,以匹配文本的各种字符。当你需要解释一个现有的正则表达式时,可以作为一个快捷的参考。更多详细内容,请参考:Fra原创 2012-04-14 09:37:49 · 2542 阅读 · 0 评论 -
Oracle表分区
此文从以下几个方面来整理关于分区表的概念及操作: 1.表空间及分区表的概念 2.表分区的具体作用 3.表分区的优缺点 4.表分区的几种类型及操作方法 5.对表分区的维护性操作.(1.) 表空间及分区表的概念表空间: 是一个或多个数据文件的集合,所有的数据对象都存放在指定的表空间中,但主要存放的是原创 2012-04-14 17:58:14 · 1185 阅读 · 2 评论 -
ORACLE ORA-01157: 无法标识/锁定数据文件
create undo tablespace MOZI datafile 'E:\oracle\product\10.2.0\oradata\orcl\MOZI.DBF' size 2048M extent management local;alter system set undo_tablespace=MOZI;WINDOW下面的ORCL数据库提示:数据库未打开: 仅允许在固定表/视图原创 2012-04-14 17:56:29 · 4467 阅读 · 1 评论 -
DML特殊用法
1.根据结果集创建表:create table 表名 as select 语句eg:create table test as select * from scott.emp当只复制表结构时,只需要让查询条件不成立(比如1>2),就不会查询出数据从而复制表结构。eg:create table test as select * from scott.emp where1>2原创 2012-04-13 12:54:05 · 652 阅读 · 0 评论 -
Oracle操作符
1.算术运算符(+、-、*、/),其中除号(/)的结果是浮点数。求余:MOD(x,y),返回x除以y余数。2.字符串连接操作符(||)。3.NULL,某条数据缺少的数据值(空值),空值是指未赋值、未知、或不可用的值。4.消除重复行(DISTINCT)eg:select DISTINCT deptnofrom emp5.BETWEEN...AND...BWTW原创 2012-04-13 12:52:40 · 754 阅读 · 0 评论 -
Oracle函数
字符函数select ASCII('sa'),ASCII('s') fromdual; --返回单个字符的ASCII码select CONCAT('ad',123),CONCAT('Dad','asdDF') fromdual; --拼接原创 2012-04-13 12:49:58 · 615 阅读 · 0 评论 -
PL/SQL循环
PL/SQL中用EXIT强制结束循环,相当于C#循环中的break。1.无条件循环LOOP-END LOOPLOOP循环是最简单的循环,也称无限循环。可以使用EXIT或者[EXIT WHEN 条件]的形式终止循环。 declare num number(11):=0; begin LOOP num:原创 2012-04-13 12:09:55 · 670 阅读 · 0 评论