摘要:
"历史总是上演惊人的相似", 在技术开发过程中,你也会总会碰到惊人相似的问题,这段时间我就碰到了”ORA-01031:insufficient privileges 权限不足”这个错误多次,一次是自己,一次是同事碰到的,顺便整理了下这个知识点。情况一:如果数据库实例安装在服务器A上,你用管理员权限Administrator登录后,使用SQL> conn system/manage as sysdba登录 没有问题。但是如果你在服务器A上建立一个etl账号,使它率属于Remote Desktop Users 和Users 组,如下所示:此时你用sys账号登录数据库时,就 阅读全文
随笔分类 - 数据库技术(Oracle)
SQL语言艺术实践篇——局外思考
2012-04-12 00:22 by 潇湘隐者, 1498 阅读, 收藏,
摘要:
今天有个同事问我一个问题,描述如下: 有一个日志信息表,对应同一个ID,可能有一条、两条、三条不同状态的记录。例如ID= 10001的日志记录可能有三条,一条记录状态为正确, 一条记录状态为错误, 一条记录状态是未知。也有可能只有其中一条记录或两条,现在的问题是,对应同一日志ID,我们只需要取一条记录,取数规则是:1:如果有状态为正确、错误、未知三条记录,我们只取状态为正确的记录。2:如果只有状态为正确、错误状态两条记录的,我们只取状态为正确的记录3:如果只有状态为错误、未知记录两条记录的,我们只取状态为错误的记录4:如果只有状态为正确、未知记录两条记录的,我们只取状态为正确的记录5:如果只有 阅读全文
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2012-04-03 13:24 by 潇湘隐者, 32616 阅读, 收藏,
摘要:
在安装ORACLE 11G 过程中由于配置的原因,安装过程中报了如下错误:按照安装提示执行后面的操作后,打开PL/SQL DEVELOPER 连接数据库时总报ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务!ORACLE NET MANAGER里面测试,测试服务是否能够成功。结果还是报如上错误在网上百度了一下这个错误ORA-12514,原来很多人都碰到过这个问题,于是按照别人的处理步骤依依配置了,这个问题解决了,不过还是觉得有必要把这个问题解决的步骤记录下来,一来让自己能跟深刻的体会一下,锻炼一下总结能力,二来可以帮助到以后碰到这个问题的人。先找到找到listener 阅读全文
ORACLE FLASHBACK TABLE 的一个有趣问题
2011-07-24 13:07 by 潇湘隐者, 4353 阅读, 收藏,
摘要:
大家都知道ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用来对误删的表进行修复。但是今天却发现了FLASHBACK TABLE的一个有趣问题,请看下面慢慢道来:下面我用一个例子来说明我的遇到的有趣的问题,欢迎大家探讨。SQL>CONNECTSYSDBA/*****ASSYSDBA已连接。SQL>CREATETABLETEST(TVARCHAR2(10));表已创建。SQL>DROPTABLETEST;表已删除。SQL>FLASHBACKTABLETESTTOBEFOREDROP;FLASHBACKTABLETESTTOBEFORED 阅读全文
ORACLE一些不常用的脚本
2011-07-10 18:01 by 潇湘隐者, 1416 阅读, 收藏,
摘要:
本篇介绍一下一些不太常用的脚本,它们往往有“奇能异效”,但是由于不太常用、不常见、或效率方面的原因,往往被大多数人给遗忘在某些角落里。呵呵,不知道你看见下面这些脚本,是否觉得眼熟呢?1: 如果我需要从SCOTT模式下EMP表中查询职位为CLERK(秘书)、SALESMAN(销售人员)这两种员工,你会怎么写?是下面哪种写法呢?SELECT*FROMSCOTT.EMPWHEREJOB=ANY('CLERK','SALESMAN')/SELECT*FROMSCOTT.EMPWHEREJOBIN('CLERK','SALESMAN')/A 阅读全文
ORACLE已建表能否创建分区
2011-07-03 12:23 by 潇湘隐者, 7923 阅读, 收藏,
摘要:
Oracle数据库里面,如果已经创建了一个表,创建时没有给表进行分区,现在由于性能等方面原因需要对该表创建分区。能否直接把一个未分区的表修改成分区表呢(即能否通过ALTER语句把该表修改成分区表呢)?答案是不能,至少目前版本不能。但是可以对已分区表增加新分区、合并分区、删除分区等一系列操作。如果要对对未分区表A创建分区,可以用下面的方法:把原表改名为B,然后创建分区表A,再把表B的数据导入A。 阅读全文
(ORACLE)查看分区表的相关信息
2011-07-03 12:16 by 潇湘隐者, 40636 阅读, 收藏,
摘要:
ORACLE数据库如何查看分区表的相关信息呢?不知道你有没有总结过这方面的知识。下面我们先创建两个表TEST、GPRS_CELLTOPVOL_WK来做实验,脚本如下:CREATETABLEGPRS_CELLTOPVOL_WK(DATE_CDNUMBER(8)NOTNULL ,WK_CDNUMBER(2)NOTNULL ,CITY_IDNUMBER(10) ,CELL_EN_NAM VARCHAR2(64)NOTNULL,CELL_CN_NAM VARCHAR2(64)NOTNULL,CELL_VOL NUMBER ,CELL_VOL_PCT NUMBER ,AVG_RATNUMBER ,CON 阅读全文
ORACLE MERGE 介绍
2011-06-23 23:45 by 潇湘隐者, 12434 阅读, 收藏,
摘要:
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。 通过MERGE语句,根据一张表或多表联合查询的连接条件对另外一张表进行查询,连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 在 Oracle 10g中MERGE有一些新特性,后面我会介绍这些新特征。先看看MERGE语法如下:MERGEINTODM.TM_WGG_SYSVLRUSER_HRDMUSING(SELECTDAT 阅读全文
ORACLE SQL*PLUS 命令大全
2011-06-09 23:00 by 潇湘隐者, 19583 阅读, 收藏,
摘要:
其实网上已经有SQL*PLUS命令大全这方面的资料了,不过大都不完整,只覆盖了一些常用的命令,本着学习、实践的原则,也为了梳理、总结SQL*PLUS方面的知识,自己也整理了一份这方面的文档资料,不足之处还请大家多多指教。---1:HELPINDEXHELP命令查询相关命令的信息。你可以从下面看到大概有54个SQL*PLUS命令。每个命令都有大量的参数选项,你不可能清楚的记得每个命令以及它相关的参数细节,所以当你遗忘时,就可以用HELP命令来查看相关命令的命令信息SQL>HELPINDEXEnterHelp[topic]forhelp.@COPYPAUSESHUTDOWN@@DEFINEP 阅读全文
ORALC的STDDEV、STDDEV_POP、STDDEV_SAMP等函数
2011-06-03 23:28 by 潇湘隐者, 14585 阅读, 收藏,
摘要:
今天一个同事碰到一个问题:用SQL求一个指标的计算公式:其中Xi即指标,X—指标均值,N是指标个数,看到这样的计算公式确实比较发愁。在处理问题前,先去恶补了下数理统计方面的知识(数理统计的知识基本上都还给老师了):方差、标准差、平均值.....随机变量是指变量的值无法预先确定仅以一定的可能性(概率)取值的量。它是由于随机而获得的非确定值,是概率中的一个基本概念。样本方差 :样本中各数据与样本平均数的差的平方和的平均数叫样本方差。样本标准差:样本方差的算术平方根叫做样本标准差。样本方差和样本标准差都是衡量一个样本波动大小的量,样本方差或样本标准差越大,样本数据的波动就越大。 数学上一般用E{[X 阅读全文
ORA-01033: ORACLE initialization or shutdown in progress
2011-05-25 23:47 by 潇湘隐者, 3237 阅读, 收藏,
摘要:
这阵子折腾ORACLE数据库,今天还真给我“折腾”出问题来了,清理磁盘里面文件时,把D:\KERRY.MDF这个数据库文件删除了(呵呵,事后才想起来的,当时以为是SQL SERVER 05 数据库实验时创建的),结果今天启动ORACLE服务后,PL/SQL连接过去时报错:ORA-01033: ORACLE initialization or shutdown in progress。查看D:\oracle\product\10.2.0\admin\orcl\bdump下告警日志,发现了下面一些错误,仅仅贴出部分日志信息(太多了,不好贴)OSD-04002: 无法打开文件O/S-Error: ( 阅读全文
邪恶的PLS-00103错误提示
2011-05-23 20:48 by 潇湘隐者, 53442 阅读, 收藏,
摘要:
今天碰到一个存储过程编译错误,提示PLS-00103错误,关于这个错误网上能搜到一大把,原因很多,我碰到的错误提示如下:Compilation errors for PROCEDURE ETL.PRO_TM_WG_NETSEV_PVError: PLS-00103: 出现符号 "EXCEPTION"在需要下列之一时: begin case declare end exit for goto if loop mod null pragma raise return select update while with <an identifier> <a dou 阅读全文
计算机改名引发的ORA-12541: TNS无监听程序错误
2011-05-21 20:27 by 潇湘隐者, 2999 阅读, 收藏,
摘要:
近期上班时,由于开机时老是提示“ 局域网出现计算机重名冲突”,于是把计算机名字给改了,从PC2010081312zeo改为了CXBIKKKKKKK,结果第二天来的时候,用PL/SQL连接我本地机子的ORACLE实例时,弹出ORA-12541:TNS无监听程序错误的提示,当时也没想到是计算机改名引起的问题,以为是相关服务没有启动缘故,于是我打开服务面板,如图所示,发现OracleOraDb10g_home1TNSListener服务没有启动,于是启动这个服务,结果等我启动后,出现下面的错误提示我又启动一次,结果还是上面错误错误提示,于是去ORACLE实例所在的安装目录%\10.2.0\db_1\ 阅读全文
ORACLE SQL脚本能否修改字段名称?
2011-05-18 20:47 by 潇湘隐者, 5443 阅读, 收藏,
摘要:
在看到标题时,你先想想:在ORACLE中能否修改一个表的某个字段名呢?如果能的话,你是否还记得SQL脚本如何写的呢,呵呵,写这个的目的是因为在论坛上看见许多信誓旦旦的说ORACLE中不能修改字段名称,只能先删除、后添加字段或是其它方法来处理。当然我不知道他们是在ORACLE那个版本下测试。我在ORACLE 9.0 ,10上是都可以执行的。http://topic.csdn.net/t/20020605/16/780826.htmlhttp://topic.csdn.net/u/20090306/14/c3fe94e2-ce50-4c0f-a205-f8f19a3f17a2.htmlhttp:/ 阅读全文
ORACLE对象大小写问题
2011-05-05 22:26 by 潇湘隐者, 9493 阅读, 收藏,
摘要:
在数据库新建一个测试表(数据库版本为ORACLE10.2.0.1.0),表名为小写的test。脚本如下所示:CREATETABLEtest(idNUMBER(10),NameVARCHAR2(20),SexVARCHAR(2))--查找不到对应数据SELECT*FROMUSER_TABLESWHERETABLE_NAME='test'--改用大写才可以查到对应的数据SELECT*FROMUSER_TABLESWHERETABLE_NAME='TEST'--查找不到对应数据SELECT*FROMALL_TAB_COLUMNSWHERETABLE_NAME=' 阅读全文
ORACLE用户管理
2011-05-04 21:37 by 潇湘隐者, 1597 阅读, 收藏,
摘要:
ORACLE用户管理包括: 创建用户、修改用户、删除用户 创建用户的脚本命令是CREATE USER语句,创建用户一般要由DBA或拥有该系统权限的用户来执行。那么我们首先来创建一个名为:kerry的用户(账号)CREATEUSERkerryIDENTIFIEDBYK123456DEFAULTTABLESPACEUSERSQUOTA10MONUSERSTEMPORARYTABLESPACETEMP 创建用户以后,我们可以通过下面的脚本来查看用户信息SELECTUSERNAME,PASSWORD,ACCOUNT_STATUS,DEFAULT_TABLESPACE, TEMPORARY_TABLES 阅读全文
ORACLE 常用函数——转换函数
2011-04-28 00:34 by 潇湘隐者, 12021 阅读, 收藏,
摘要:
------------------------------------------类型转换函数------------------------------------------------自动类型转换,ORACLE可以自动根据具体情况进行如下转换:*字符串到数值*字符串到日期*数值到字符串*日期到字符串EX:--*字符串到数值SELECT'3.14159'+20FROMDUAL;SELECT'3.1T'+20FROMDUAL;--报错:无效数字,即字符串必须能转换为数值类型才能进行操作--*数值到字符串SELECT'100'||124FROM 阅读全文
ORACLE 常用函数——字符函数
2011-04-27 00:51 by 潇湘隐者, 10973 阅读, 收藏,
摘要:
-----------------------------------------------字符函数-----------------------------------------------1:ASCII返回字符串的ASCII值 SELECTASCII('A')FROMDUAL;SELECTASCII('a')FROMDUAL;--2:CHR返回整数所对应的ASCII字符SELECTCHR('65')FROMDUAL;SELECTCHR(400)FROMDUAL;--如果超出ACII值,则返回空--3:CONCAT函数连接字符串A和字符串B 阅读全文
ORACLE 常用函数——日期/时间函数
2011-04-27 00:06 by 潇湘隐者, 37300 阅读, 收藏,
摘要:
---------------------------------------------日期/时间函数-------------------------------------------------1:SYSDATE用来得到系统的当前日期SELECTSYSDATEFROMDUAL;--2:ADD_MONTHS增加或减去月份SELECTTO_CHAR(ADD_MONTHS(TO_DATE('20080818','YYYYMMDD'),2),'YYYY-MM-DD')FROMDUAL;SELECTTO_CHAR(ADD_MONTHS(SYSDAT 阅读全文
ORACLE 常用函数——聚合函数
2011-04-26 23:06 by 潇湘隐者, 41649 阅读, 收藏,
摘要:
/************************************************************************************************************************** ORACLE 常用函数 这个系列我将整理一些日常我们经常使用到的ORACLE函数,鉴于篇幅太长,我大体会按下面分类来整理、汇总这些常用的ORACLE函数,如果有些常用函数没有被整理进来,也希望大家指点一二。1: 聚合函数2: 日期函数3: 字符串函数4: 格式化函数5: 类型转换函数6: 加密函数7: 控制流函数8: 数学函数9: 系统信息函数*** 阅读全文