
Oracle
擦肩而过
天道酬勤,精益求精
展开
-
Oracle数据库常识
Oracle数据库常识:1.如果两张表做连接查询,并且没有任何条件限制的话,两张表中的记录会随意匹配,最后的查询结果条数是两张表记录数的乘积,这种现象就是著名笛卡尔积现象。select e.ename,d.dname from emp e,dept d;2.等值连接内连接(等值连接):SQL92语法select e.ename,d.dname from emp e,dept d原创 2015-02-05 16:20:42 · 554 阅读 · 0 评论 -
Oracle 数据导出工具 Spool
Spool,Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西(Oracle快速导入数据的工具为sqlldr,在博客的其他文章中讲述)一、Spool常用的设置set arraysize 5000; //此参数可提高SPOOL卸载的速度,最大可以设置为5000set autotrace on; //设置允许对执行的sql进行分析set转载 2016-03-18 17:41:27 · 1595 阅读 · 1 评论 -
Oracle如何显示出小数点前后的0
摘自:http://blog.sina.com.cn/s/blog_614b6f210100tniq.htmlselect to_char(round(99.999,2),'fm9999990.0099') from dual; --结果 100.00select round(99.999,2) from dual;--结果100 oracle中roun转载 2016-06-17 16:41:43 · 7773 阅读 · 0 评论 -
SQL联合索引 与 单一列的索引
转自:http://liqita.iteye.com/blog/1205544 背景:目前WEB的普及太快,很多网站都会因为大流量的数据而发生服务器习惯性死机,一个查询语句只能适用于一定的网络环境.没有优化的查询当遇上大数据量时就不适用了.联合索引使用结论:1):查询条件中出现联合索引第一列,或者全部,则能利用联合索引.2):条件列中只要条件相连在一起,以本文例子来说就是:转载 2016-07-28 18:09:49 · 318 阅读 · 0 评论 -
oracle查找重复记录
SELECT *FROM t_info aWHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1)ORDER BY Title DESC一。查找重复记录1。查找全部重复记录Select * From 表 Where 重复字段 In (Select 重转载 2016-06-23 13:48:25 · 1617 阅读 · 0 评论 -
oracle 监听启动、停止、查看命令
Oracle配置好环境变量,则cd $ORACLE_HOME即可定位到Oracle主目录1.su oracle 然后启动监听器 1.lsnrctl start 会看到启动成功的界面;1.lsnrctl stop 停止监听器命令.1.lsnrctl status 查看监听器命令.oracle数据库的安全包含两部分:1.一部分是os的转载 2017-03-20 17:42:19 · 26789 阅读 · 0 评论 -
Oracle中用exp/imp命令参数详解
Oracle中用exp/imp命令参数详解【用 exp 数 据 导 出】:1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中 exp system/manager@TEST rows=y indexes=y compress=n buffer=65536 feedback=100000full=y file=d转载 2017-03-23 13:06:33 · 686 阅读 · 0 评论 -
ORA-12154TNS无法解析指定的连接标识符
又是这个百无聊赖的问题,虽然问题芝麻点大,却让我们好找啊!很久没有安装oracle了,今天安装11g的时候,用PLSQL Developer连接时,就出现了这个俗不可耐的问题:ORA-12154 TNS无法解析指定的连接标识符。我自认为安装的时候已经很小心翼翼了,结果还是出了纰漏,于是乎,我抱着不解决问题誓不罢休的决心开始一步步排查问题,功夫不负有心人,最终得以解决。下面我详细给大转载 2017-03-27 09:18:00 · 829 阅读 · 1 评论 -
Oracle数据库使用PDE文件导出数据和传统EXP/IMP方式的区别
oracle怎么导出function和procedure,即函数和存储过程?1通过在cmd中使用exp,导出为dmp格式。2通过plsql工具的Tools->export user objects,导出为sql格式。状态由红变黑,表示导出成功了。注意不要导出owner、storage、privilege等。说明:转载 2017-04-13 17:15:40 · 1904 阅读 · 0 评论 -
oracle db link的查看创建与删除
1.查看dblinkselect owner,object_name from dba_objects where object_type='DATABASE LINK';或者select * from dba_db_links;2.创建dblink前提: 创建dblink的用户有对应的数据库权限 cr转载 2017-04-18 10:50:35 · 525 阅读 · 0 评论 -
EXP-00026: conflicting modes specified
问题的现象:EXP-00026: conflicting modes specifiedEXP-00000: Export terminated unsuccessfully 备份文件会生成 但是没有内容。这个问题主要是 exp的时候 里面参数发生了冲突。 比较常见的: 1.同时指定了 owner 和 tables2.同时转载 2017-04-14 14:51:04 · 4542 阅读 · 0 评论 -
Oracle insert大数据量经验之谈
在很多时候,我们会需要对一个表进行插入大量的数据,并且希望在尽可能短的时间内完成该工作,这里,和大家分享下我平时在做大量数据insert的一些经验。 前提:在做insert数据之前,如果是非生产环境,请将表的索引和约束去掉,待insert完成后再建索引和约束。 1. insert into tab1 select * from tab2; co转载 2017-04-24 18:21:44 · 5980 阅读 · 1 评论 -
ORA-22992: 无法使用从远程表选择的 LOB 定位器
执行: insert into incomesec.tp_ts_bill_info_b select * from incomesec.tp_ts_bill_info_b@DB_SYDB_LINK;insert报错:ORA-22992: 无法使用从远程表选择的 LOB 定位器 当出现这个错误的时候,那是因为你跨库连接查询中的这个表存在BLOB类型的字段所以一定要注转载 2017-04-26 12:08:53 · 6560 阅读 · 0 评论 -
user_all_tables,user_tables等oracle系统表说明
dba_tables : 系统里所有的表的信息,需要DBA权限才能查询all_tables : 当前用户有权限的表的信息(只要对某个表有任何权限,即可在此视图中看到表的相关信息)user_tables: 当前用户名下的表的信息所以以上3个视图中,user_tables的范围最小,all_tables看到的东西稍多一些,而dba_tables看到最多的信息----------转载 2017-07-26 14:23:40 · 3412 阅读 · 0 评论 -
数据库面试时常见的46个问题
1. SQL语言包括哪些类型?数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index数据操纵:Select ,insert,update,delete数据控制:grant,revoke2. 内联接,外联接区别?内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一...转载 2018-04-26 23:44:54 · 520 阅读 · 0 评论 -
Oracle字符串,行转列、列转行的Sql语句总结
多行转字符串这个比较简单,用||或concat函数可以实现 SQL Code 12 select concat(id,username) str from app_userselect id||username str from app_user字符串转多列实际上就是拆分字符串的问题,可以使用 substr、instr、regexp_substr函数方式字符串转多行使用union all函数等方...转载 2018-04-26 23:45:58 · 6868 阅读 · 0 评论 -
ORACLE普通表转换成分区表的操作
【前言】oracle官方建议当表的大小大于2GB的时候就使用分区表进行管理,分区表相对于小的表管理和性能上都有很大的优势,本文档暂时不介绍具体的优势,主要介绍几种普通表转换成分区表的方法;【方法概述】oracle官方给了以下四种操作的方法: A) Export/import method(导入导出) B) Insert with a subquery method(插入子查询的方法) C) ...转载 2018-04-27 00:04:21 · 1027 阅读 · 0 评论 -
Oralce SQLPlus 以及shell脚本中spool输出到文件时的格式化输出
1) 格式调整有以下参数 set echo on/off 是否显示脚本中的需要执行的命令 set feedback on/off 是否显示 select 结果之后返回多少行的提示set linesize n 设置一行最多显示多少字符,之前就是因为 n 设得过转载 2016-03-18 17:40:18 · 1620 阅读 · 0 评论 -
ORACLE收缩表空间
摘自:http://blog.youkuaiyun.com/aptweasel/article/details/8988427最近导一个空库到数据库后,发现占用的表空间非常大,执行表收缩(SHRINK SPACE CASCADE)后,发现实际占用的空间不到1%。但是收缩表空间大小提示错误 ALTER DATABASE DATAFILE 'D:\ora_tablespace\GCOMM转载 2016-01-27 17:09:13 · 901 阅读 · 0 评论 -
Oracle修改表空间为自动扩展
1.数据文件自动扩展的好处1)不会出现因为没有剩余空间可以利用到数据无法写入2)尽量减少人为的维护3)可以用于重要级别不是很大的数据库中,如测试数据库等2.数据文件自动扩展的弊端1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大2)没有人管理的数据库是非常危险的3.查询当前数据库中表空间SEC_D是否为自动扩展sec@orcl> select tablespace_name,fi转载 2016-01-27 17:07:48 · 2679 阅读 · 0 评论 -
ORACLE 日期加减操作
无论是DATE还是timestamp都可以进行加减操作。可以对当前日期加年、月、日、时、分、秒,操作不同的时间类型,有三种方法:1 使用内置函数numtodsinterval增加小时,分钟和秒2 加一个简单的数来增加天3 使用内置函数add_months来增加年和月例:对当前日期增加一个小时:SQL> select sysdate, sysdate+numtod转载 2015-07-31 09:55:26 · 499 阅读 · 0 评论 -
SPOOL参数详解
Spool,Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西(Oracle快速导入数据的工具为sqlldr,在博客的其他文章中讲述)一、Spool常用的设置set arraysize 5000; //此参数可提高SPOOL卸载的速度,最大可以设置为5000set autotrace on; //设置允许对执行的sql进行分析set转载 2015-07-31 15:14:14 · 39046 阅读 · 0 评论 -
Oracle中merge into的使用
http://blog.youkuaiyun.com/yuzhic/article/details/1896878http://blog.youkuaiyun.com/macle2010/article/details/5980965http://www.cnblogs.com/highriver/archive/2011/08/02/2125043.html该命令使用一条转载 2015-08-14 10:21:24 · 375 阅读 · 0 评论 -
oracle表空间使用率统计查询
参考文献文献1:http://blog.itpub.net/24104518/viewspace-730682,字符有格式,需要清理一下文献2:http://www.cnblogs.com/fengyun627/archive/2009/07/27/1532551.html文献3:http://blog.youkuaiyun.com/hproc/article/details/7372转载 2015-08-14 10:36:31 · 436 阅读 · 0 评论 -
Oracle中Execute Immediate的使用技巧
EXECUTE IMMEDIATE代替了以前Oracle中DBMS_SQL package包。 下面就为您介绍Oracle中EXECUTE IMMEDIATE的使用技巧,供您参考。 它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块。动态创建和执行SQL语句性能超前,EXECUTE IMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码。尽管DBMS转载 2015-10-08 14:56:31 · 589 阅读 · 0 评论 -
ORACLE修改表空间方法
一、使用imp/exp。先导出源库,再创建新库把表空间创建好,然后再导入。(据说这样可以,前提是新的库里面不能有与源库相同名字的表空间。有待验证!) 二、使用脚本进行修改。据目前所了解,正长情况下需要修改表的空间和表的索引的空间,如果涉及到BOLB字段的表,修改的方式又不一样了! 正常情况下的修改脚本: 1.修改表的空间 alter table TABLE_NAME move转载 2015-11-13 17:57:55 · 541 阅读 · 0 评论 -
Oracle 使用 DBLINK详解
DBLINK详解1.创建dblink语法:CREATE [PUBLIC] DATABASE LINK link CONNECT TO username IDENTIFIED BY passwordUSING ‘connectstring’说明:1) 权限:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLI转载 2015-11-16 17:21:06 · 1701 阅读 · 0 评论 -
oracle sqldr命令使用 sqldr导入中文乱码问题
1:导入命令sqlldr userid=username/password@dbtest control=url.ctl errors=10000000 说明:a:username/password@dbtest 分别为用户名,密码,服务名;b:url.ctl 详细内容见下面;c: errors=10000000 可以容纳的错误数,即错误数不超过此值会导入成功,超过此值转载 2015-12-09 18:26:24 · 1397 阅读 · 0 评论 -
Oracle存储过程简单实例
/*不带任何参数存储过程(输出系统日期)*/create or replace procedure output_date isbegindbms_output.put_line(sysdate);end output_date;/*带参数in和out的存储过程*/create or replace procedure get_username(v_id in numb转载 2015-11-24 18:06:33 · 342 阅读 · 0 评论 -
oracle存储过程、声明变量、for循环
oracle存储过程、声明变量、for循环 1、创建存储过程create or replace procedure test(var_name_1 in type,var_name_2 out type) as--声明变量(变量名 变量类型)begin--存储过程的执行体end test;打印出输入的时间信息E.g:creat转载 2015-11-25 16:34:44 · 567 阅读 · 0 评论 -
Oracle创建临时表:CREATE GLOBAL TEMPORARY TABLE
CREATE GLOBAL TEMPORARY TABLE TABLENAME (COL1 VARCHAR2(10),COL2 NUMBER) ON COMMIT PRESERVE(DELETE) ROWS ;这种临时表不占用表空间,而且不同的SESSION之间互相看不到对方的数据在会话结束后表中的数据自动清空,如果选了DELETE ROWS,则在提交的时候即清空数据,PRES转载 2015-11-24 17:48:50 · 1768 阅读 · 0 评论 -
ORACLE多表关联UPDATE 语句
为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中,SQL 代码--客户资料表create table customers(customer_id number(8) not null, -- 客户标示city_name varchar2(10) not null, -- 所在城市customer_type char转载 2015-12-14 16:49:24 · 484 阅读 · 0 评论 -
sqlldr常规应用 (总结篇)
load data infile * ---指定加载文件 *表示数据就在控制文件后面into table bonus ---指定表名fields termin转载 2015-12-14 16:28:51 · 1091 阅读 · 0 评论 -
导出csv文件时,处理分隔符问题
CSV文件默认以英文逗号做为列分隔符,换行符作为行分隔符。 如果不提供网页形式只用命令行或二进制程序输出数据到CSV,只需要将数据段按,分割,行按\n分割,写入到一个.csv文件即可。 但有时字段里含有,和换行符就麻烦了,数据输出会出现混乱。这时可以使用双引号"来将每个字段内容括起来,CSV默认认为由""括起来的内容是一个栏位, 这时不管栏位内容里有除"之外字符的任何字符都可以按原转载 2016-01-08 10:28:28 · 5973 阅读 · 0 评论 -
PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
只要有人用了: select t.* from 表名 t where 字段=xxx for update而不是: select t.rowid,t.* from 表名 t where 字段=xxx for update进行数据更新操作,就会出现这种情况.for update 不带rowid,是一种很傻X的行为,就像使用svn进行源码修改不先获取最新一转载 2016-01-26 14:08:47 · 6287 阅读 · 0 评论 -
Oracle中增加Split函数
摘自:http://my.oschina.net/u/140663/blog/2177821.首先,我们增加一个表类型:CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000)其次,我们增加相对应的Split函数,该 函数返回ty_str_split表类型CREATE OR REPLACE FUNCT转载 2016-01-26 17:55:49 · 545 阅读 · 0 评论 -
查询有2门及以上不及格科目的学生姓名及其平均成绩
有三个表S(学号s#,姓名sname,。。。)、C(课程号c#,课程名cname,。。。)、SC(学号s#,课程号c#,成绩grade。。。)select sname,avg(grade)from s,sc where s.s#=sc.s# and grade<60group by snamehaving by count(grade)>=2...转载 2018-04-27 00:18:00 · 30314 阅读 · 11 评论