
oracle
文章平均质量分 70
踏雪无痕
这个作者很懒,什么都没留下…
展开
-
如何在触发器中调用select语句?
修改为SELECT MAX(F_LEVELORDER) + 1 AS orderid INTO orderid FROM TB_BASE_GUARANTEECOMPANY;原创 2014-05-26 10:59:29 · 4008 阅读 · 0 评论 -
在64位win7下安装了32位的Oracle10g以后,plsql连接出错的解决方法
在64位win7下安装了32位的Oracle10g以后,plsql连接出错,提示一个空的对话框。解决办法:解决pl/sql连接问题:1.到oracle官网下载Oracle InstantClient,我下的是instantclient-basiclite-win32-10.2.0.4.zip,把它解压缩到oracle安装目录product下,其中还有一个目录为1转载 2013-11-27 10:43:16 · 1075 阅读 · 0 评论 -
在ORACLE中实现SELECT TOP N的方法
1.在ORACLE中实现SELECT TOP N 由于ORACLE不支持SELECT TOP语句,所以在ORACLE中经常是用ORDER BY跟ROWNUM的组合来实现SELECT TOP N的查询。 简单地说,实现方法如下所示: SELECT 列名1...列名n FROM (SELECT 列名1...列名n FROM 表名 ORDER BY 列名1转载 2013-11-25 22:18:46 · 839 阅读 · 0 评论 -
轻松解决oracle11g 空表不能 exp 导出 的问题
oracle11g的新特性,数据条数是0时不分配segment,所以就不能被导出。 解决方法: 1插入一条数据(或者再删除),浪费时间,有时几百张表会累死的。2创建数据库之前使用代码:Sql代码 alter system set deferred_segment_creation=false;转载 2013-11-25 10:39:31 · 1041 阅读 · 0 评论 -
Oracle中删除正在连接的用户
首先,在删除数据库用户时遇到了正在连接的用户,此时无法drop掉。那么,是否可以强制断开连接呢?答案似乎是肯定的:我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为: alter system kill session ’sid,serial#’ ; 对于kill session 的解释,可以参考:Oracle中K转载 2013-11-24 12:30:19 · 2008 阅读 · 0 评论 -
oracle中imp导入参数show=y 详解
在imp的帮助中: SHOW just list file contents (N),默认为N。下面通过实验说明2点:1.show=y 可以显示dmp文件中创建对象的语句。2.show=y 就如同oracle说的那样, just list file contents,这里不进行导入操作。准备实验环境:1.创建用户,并赋权:SQL> cr转载 2013-11-20 20:02:38 · 5406 阅读 · 0 评论 -
exp的consistent=Y的用途
最近客户提到关于exp出来的sequence小于表中数据的问题,研究了一下,解决了。具体问题是这样的:表的主键是用sequence来生成的。在exp按user导出时,是先导出sequence然后再导出表,这就有可能发生这样的情况,在sequence导出以后,在对应的表导出之前,有新的数据insert这张表,并且及时提交了,这使导出表的时候表中主键的值已经大于之前导出的seqence值。转载 2013-11-20 20:38:57 · 3036 阅读 · 0 评论 -
Oracle imp和exp的使用
入行太晚,没接触过早期的Oracle版本,所以一直都是用PLSQL Developer做数据的exp和imp。现在要写定制脚本了才发现,自己居然对命令行模式下的这两个命令很不了解,于是只要再来学一遍基础。了解了一遍之后发现这两个工具的有些细节还是很值得注意一下的,下面看一下详细的用法: 一、exp工具的使用 按照惯例,首先先来看一下自带的help文转载 2013-11-20 14:53:55 · 1147 阅读 · 0 评论 -
exp和imp的参数
exp参数:关键字 说明(默认) ----------------------------------------------USERID 用户名/口令FULL 导出整个文件 (N)BUFFER 数据缓冲区的大小OWNER 所有者用户名列表FILE 输出文件 (EXPDAT.DMP)TABLES 表名列表COMPRESS 导入一原创 2013-11-03 14:28:52 · 993 阅读 · 0 评论 -
传统路径导出 VS 直接路径导出(oracle exp direct=y)
Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业。从Oracle 7.3开始,传统的exp导出程序提供两种的导出路径方式,一个是传统路径导出(Conventional Path Export),一个是直接路径导出(Direct Path Export)。本文即是因最近客户的传统导入导出性能问题对此进行转载 2013-11-03 16:06:11 · 941 阅读 · 0 评论 -
sql语句中字段的别名中含有括号时的解决办法
当sql语句中字段的别名中含有括号时,则需要用双引号将其引起来,则会减少错误。(1)当别名中含有括号时:Select sysdate as 系统日期(包含时分秒) from dual;则会出现以下错误:(2)将别名用引号引起来后:Select sysdate as “系统日期(包含时分秒)” from dual;(3)用单引号会引发另外的错误:转载 2013-11-15 12:48:50 · 7770 阅读 · 0 评论 -
ORACLE 查询大于某个时间的记录
SELECT t.*, t.rowid FROM tb_guar_attachupload t WHERE f_createtime > to_date('2013/10/25 9:38:51', 'YYYY/MM/DD HH24:MI:SS');原创 2013-10-25 09:56:06 · 84228 阅读 · 0 评论 -
PLSQL 中Merge into和Update的用法
这两天一直在处理关于SQL server存储过程转换到Oracle中,也发现一些oracle语句的区别。 在oracle 中有个语法:merge 用法如下:merge into 表1 using 表2 或者(select * from 表2)别名 on (表1.id=表2.id) when matched then update set 表1.列转载 2013-09-28 15:27:52 · 13724 阅读 · 1 评论 -
oracle的nvl和sql server的isnull
最近公司在做Oracle数据库相关产品,在这里作以小结:ISNULL()函数语法 ISNULL ( check_expression , replacement_value) 参数 check_expression 将被检查是否为 NULL的表达式。check_expression 可以是任何类型的。 replaceme转载 2013-09-22 20:41:59 · 1352 阅读 · 0 评论 -
DECODE函数和CASE WHEN 比较
一,DECODE函数 其基本语法为:Sql代码 DECODE(value, if1, then1, if2, then2, if3, then3,...ifn, thenn, else) 表示如果value等于if1时,DECODE函数的结果返回then1,...,如果不等于任何一个if值,则返回else。亦即:decode(条件,值1,转载 2013-09-22 20:23:17 · 1711 阅读 · 0 评论 -
ORACLE 存储过程 like 样例
create or replace procedure PROC_Test_User(vF_username in varchar2, out_Refcursor out sys_refcursor) isbegin open out_Refcursor for SELECT u.* FROM tb_system_user u WHERE 1 > 0 AND u.f_user原创 2013-11-28 23:47:48 · 4169 阅读 · 0 评论 -
Oracle中INSTR和SUBSTR的用法
Oracle中INSTR和SUBSTR的用法Oracle中INSTR的用法:INSTR方法的格式为INSTR(源字符串, 要查找的字符串, 从第几个字符开始, 要找到第几个匹配的序号)返回找到的位置,如果找不到则返回0.例如:INSTR('CORPORATE FLOOR','OR', 3, 2)中,源字符串为'CORPORATE FLOOR', 在字符串中查找'OR',从第三个转载 2013-12-08 00:40:28 · 1708 阅读 · 0 评论 -
如何在pl/sql中查看dbms_output.put_line(varname)的输出结果?
declarevarname varchar2(20);beginselect t.product_name into varname from product t where t.product_id=2021015 ;dbms_output.put_line(varname);end; 写SQL语句的地方,上边有个标签页叫 SQL,你测试一是再这里面直接就可以看到, 再 SQ转载 2013-12-07 14:15:58 · 19838 阅读 · 0 评论 -
oracle 存储过程 基础
差不多一年没写过存储过程,最近要写,发现基本忘了,google一番之后,觉得很有必要把基础的东西写下来备忘。 语句块定义:Sql代码 decalre -- 变量声明 var1 number(2); -- 仅声明 var2 char(2) := '11'; -- 在声明的同时初始化转载 2014-05-22 10:17:06 · 804 阅读 · 1 评论 -
oracle存储过程
用了两年Oracle还没写过存储过程,真是十分惭愧,从今天开始学习Oracle存储过程,完全零起点,争取每日一篇学习笔记,可能开始认识的不全面甚至有错误,但坚持下来一定会有收获。1. 建立一个存储过程 create or replace PROCEDURE firstPro IS BEGIN DBMS_OUTPUT转载 2014-05-22 09:59:10 · 894 阅读 · 0 评论 -
Oracle中存储过程和函数的区别
存储过程和函数: 例子:[sql] view plaincopyprint?//创建过程 create or replace procedure add_emailinfo(namee email_info.fullname%type ,address email_info.email_addres转载 2014-05-22 10:25:35 · 764 阅读 · 0 评论 -
ORACLE+10G+win7下载地址及安装方法
由于ORACLE并没有FOR WIN7的版本,必须下载for vista_w2k8这个版本,将oralce 10G的安装镜像解压都硬盘,然后修改安装目录下的rehost.xml和oraparam.ini两个文件。 下载地址:http://download.oracle.com/otn/nt/oracle10g/10203/10203_vista_w2k8_x86_production_db转载 2013-10-18 12:39:25 · 6461 阅读 · 0 评论 -
win7安装oracle 10g时发生“程序异常终止。发生内部错误”的提示
安装oracle10g“程序异常终止。发生内部错误。请将以下文件提供给oracle技术支持部门。发生情景:我由于在做开发时需要用IE9来做开发,来看展示页面,而IE9在windows XP 上是无法安装的,所以使用windows7+IE9在安装Oracle 10g数据库时发生了错误,以前windows7上安装从来没出过的错误,现在把解决问题的方法和原因分享给大家。* 安装转载 2013-10-18 12:28:30 · 3436 阅读 · 0 评论 -
ORACLE重新编译无效对象的执行问题
在sqlplus中执行:EXEC DBMS_UTILITY.compile_schema(schema=>'GBMIS_1_3_2');在PLSQ的command window中执行:EXEC DBMS_UTILITY.compile_schema(schema=>'GBMIS_1_3_2');在PLSQL的sql window中执行:BEGINEXEC DBMS_U原创 2014-01-15 13:03:42 · 1652 阅读 · 0 评论 -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
在安装完Oracle10g后,使用PL/SQL工具连接,提示如下的问题:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 解决办法是手动修改监听配置文件: # listener.ora Network Configuration File: d:\oracle\product\10.2.0\client转载 2013-06-10 22:06:15 · 1219 阅读 · 0 评论 -
oracle exp/imp时版本规则
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件)规则3:低版本exp出的dmp文件,高版本可以imp(向下兼容)规则4:从Oracle 低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从转载 2014-01-12 22:34:51 · 1316 阅读 · 0 评论 -
exp 时遇到密码有特殊字符(!@#)解决方法
今天exp数据库时,遇到密码有特殊字符情况(!@#)之前没遇到过,oracle不能正确识别net服务名,尝试很多办法,现在总结一下: 1、在windows系统解决办法 exp 用户名/“““密码”””@net服务名 file=mahanso.dmp log=mahanso.log 注:其中:“““密码”””,3对双引转载 2013-12-26 12:54:29 · 11455 阅读 · 0 评论 -
ORA-28000: the account is locked-的解决办法
ORA-28000: the account is locked第一步:使用PL/SQL,登录名为system,数据库名称不变,选择类型的时候把Normal修改为Sysdba;第二步:选择myjob,查看users;第三步:选择system,右击点击“编辑”;第四步:修改密码,把“帐户被锁住”的勾去掉;第五步:点击“应用”再点击“关闭”;第六步:重新登录就可以通过验证了;转载 2014-01-10 09:35:25 · 922 阅读 · 0 评论 -
Oracle不同版本间用exp进行导数据时的问题
关于Oracle不同的版本间用exp进行导数据时的一些问题。 公司内的一个项目系统的数据库从Oracle 8i 升级到 9i 机器t1 安装 Oracle 8.16 机器t2 安装 Oracle 8.17 机器t3 安装 Oracle 9i 现在为了将t1数据库中的某一个用户的数据导入到t3的9i中去, 在t3机器执行: E:转载 2013-12-24 12:39:20 · 1855 阅读 · 0 评论 -
oracle中的exists和in的区别
有两个简单例子,以说明 “exists”和“in”的效率问题 1) select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ; T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。 2) select * from T1 where T1.a in (select T2.a from T原创 2013-12-17 09:17:23 · 967 阅读 · 0 评论 -
在PL/SQL中调用存储过程--oracle
在oracle10中写好了存储过程,代码如下:CREATE OR REPLACE Procedure Proc_Insert( sName in varchar2, sAge in int, sExeTime in varchar2)is begin Insert into T_TES转载 2013-12-07 10:46:49 · 36795 阅读 · 4 评论 -
PLSQL编写触发器
主题:Oracle学习笔记(8) 使用PLSQL编写触发器DML 触发器: 对表执行Insert、Update、Delete操作时激发 可以用于执行校验、设置初使值、审核改变、甚至禁止某种DML操作 语法: CREATE OR REPLACE TRIGGER 触发器名称 {AFTER|BEFORE } -- 指定触发时机 {INSERT OR DELETE OR UPD转载 2013-12-06 23:56:16 · 1169 阅读 · 0 评论 -
查看ORACLE 数据库信息
-- 查看ORACLE 数据库中本用户下的所有表SELECT table_name FROM user_tables;-- 查看ORACLE 数据库中所有用户下的所有表select user,table_name from all_tables;-- 查看ORACLE 数据库中本用户下的所有列select table_name,column_name from user转载 2013-09-29 22:23:06 · 1139 阅读 · 0 评论 -
oracle wm_concat(column)函数的使用
oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并,如果您对oracle wm_concat(column)函数使用方面感兴趣的话,不妨一看。shopping:-----------------------------------------u_id good转载 2013-08-30 16:42:28 · 1159 阅读 · 0 评论 -
RTRIM语法举例
以下是OCP教材中对该函数的描述RTRIM(, ) takes two arguments, where c1 and c2 are characterstrings. This function returns c1 without any trailing characters that appearin c2. If no c2 characters are trailing c原创 2013-07-24 21:53:59 · 1051 阅读 · 0 评论 -
ORACLE ORDER BY 排序规则
在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序 SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序 SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序举例如下:表名为 dept ,其中name字段是中文,下原创 2013-07-24 16:55:11 · 4600 阅读 · 0 评论 -
sql通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。SQL 通配符必须与 LIKE 运算符一起使用。LIKE关键字共有四种通配符。“%”代表“包含0个或更多字符的任意字符串”;“_”代表“任何单个字符”;“[]”代表“指定范围(例如 [a-f])或集合(例如 [abcdef])内的任何单个字符”;“[^]”代表“不在指定范围(例如 [^a - f])或集合(例如 [^abcdef原创 2013-07-24 15:25:49 · 1133 阅读 · 0 评论 -
SELECT语句执行顺序解析
关于SQL中Select语句的执行顺序,一直很少注意这个问题,对于关键字的使用也很随意,至于效率问题,因为表中的数据量都不是很大,所以也不是很在意。今天在写一条语句的时候,在查询分析器里边执行。 要用10s,换用另外一种写法只用少于1s的时间,同事说是因为Sql句语执行顺序的原因。之前看过一点相关的书,有一点印象,到网上找了资料,学习下。 逻辑查询处理步骤(8)SE转载 2013-07-24 15:15:24 · 878 阅读 · 0 评论 -
sql去除重复语
sql 单表/多表查询去除重复记录单表distinct多表group bygroup by 必须放在 order by 和 limit之前,不然会报错************************************************************************************1、查找表中多余的重复记录,重复记录是根据转载 2013-07-24 15:52:42 · 865 阅读 · 0 评论 -
完全卸载oracle11g步骤
完全卸载oracle11g步骤:1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、 开始->程序->Oracle - OraHome81->Oracle Installation Products-> Universal Installer,单击“卸载产品”-“全部展开”,选中除“OraDb11g_home1”外的全部目录,删除。5、 运行regedit转载 2013-07-29 10:51:56 · 996 阅读 · 0 评论