
Oracle小知识点
timeis24
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
查换出字段中是否有换行符号及去除换行符号
有时候我们在关联字段的时候,总是关联不上,以为有空格,trim 了之后还是关联不上,但是从字段上来看又看不出区别来,其他只要稍微仔细用 电脑左右键的右键一个字符一个字符向右移动,到最后面的时候就看出端倪来了 select p.*,length(job) from scott.emp p where deptno=20; --修改字段加上换行符号update scott.emp ...原创 2018-08-21 16:42:29 · 3155 阅读 · 0 评论 -
查询锁表及kill
查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$se...原创 2018-08-18 12:57:31 · 792 阅读 · 0 评论 -
两个时间相差天时分秒
select '两个时间相差:'AS 时间, trunc(to_number(sysdate -to_date('2013-08-11 18:30:59','yyyy-mm-dd hh24:mi:ss')))天, trunc(mod(to_number(sysdate -to_date('2013-08-11 18:30:59','yyyy-mm-dd ...转载 2018-08-18 12:52:27 · 542 阅读 · 0 评论 -
去掉 字符内容里的 html 标签
SELECT replace(replace(regexp_replace(name,'</?[^>]*>'),'nbsp;'),'&') FROM scott.t SELECT regexp_replace(name,'<[^>]*>|[nbsp;&]') FROM scott.t原创 2018-08-18 12:48:13 · 679 阅读 · 0 评论 -
sql 批量清空表,批量分析表
--写一个对表批量 truncate 的语句,执行后复制出来,批量执行即可 如下清空表DECLARE CURSOR CUR_TRUNC IS SELECT TABLE_NAME FROM USER_TABLES;BEGIN FOR CUR_DEL IN CUR_TRUNC LOOP EXECUTE IMMEDIATE 'TRUNCATE TABLE ' ...原创 2018-08-18 12:44:28 · 1968 阅读 · 0 评论 -
小写数字转财务大写
转载的知识点,感谢原创作者,我这里备忘记录下。 CREATE OR REPLACE FUNCTION MONEY2CHINESE(MONEY IN NUMBER) RETURN VARCHAR2 IS STRYUAN VARCHAR2(150); STRYUANFEN VARCHAR2(152); NUMLENYUAN NUMBER; NUMLEN...转载 2018-08-18 12:41:15 · 800 阅读 · 0 评论 -
以日期时间加四位随机数作序列
原来的需求,记录一下 --创建测试表create table tt (id varchar2(50),name varchar2(50))--创建函数create or replace function num1return varchar2is Result varchar2(100);begin select to_char(systimestamp,'yyyymmd...原创 2018-08-18 12:37:35 · 1714 阅读 · 0 评论 -
批量导出多个表insert 语句
示例如下:create table sql_str as SELECT 'INSERT INTO SCOTT.DEPT (DEPTNO, DNAME, LOC) VALUES (' || DEPTNO||', '''||DNAME||''', '''||LOC||''');' SQL_STR FROM SCOTT.DEPTUNION ALLSELECT 'INSERT INTO原创 2016-12-08 11:38:18 · 1430 阅读 · 0 评论 -
将多个表结构相同的表插入到一张表
示例如下:create table dept1 as SELECT * FROM dept ;create table dept2 as SELECT * FROM dept ;create table dept3 as SELECT * FROM dept ;create table temp_dept as SELECT * FROM dept where 1=2;原创 2016-12-08 11:36:46 · 2360 阅读 · 0 评论 -
level 配合substr 和instr 进行字符串截取
假设字符串是比较规则的0123456789截取成 0123456789select substr('0123456789',level,1)qq from dual connect by level'01,23,45,67,89' 截取成012345678原创 2016-11-14 11:47:53 · 441 阅读 · 0 评论 -
sqlload及loader方式外部表末字段为空处理选项
转载出处:点击打开链接1、sqlloader对末字段为空的处理一般的sqlloader导入中,如果最后一个字符不为空,则一条记录的的最后是不需要加分隔符的;Sqlloader程序可以正常导入。但如果末字符为空,记录的最后则必须加分隔符才能正常导入。实际上,sqlloader有专门的处理选项,在“FIELDS TERMINATED BY '|'”的下一行添加“TRAILING N转载 2016-11-16 13:09:10 · 2851 阅读 · 0 评论 -
删除windosw 下的 oracle 服务
删除 oracle 服务sc delete oracleserviceorcl原创 2016-09-27 15:51:30 · 332 阅读 · 0 评论 -
每天复制表,表名为每天的日期 yyyymmdd
有时候需要用create table as select * from tables 的方式备份一个表,然后写成存储过程定时执行每天复制表,表名为每天的日期 yyyymmddCREATE OR REPLACE PROCEDURE INSERTAAUTHID CURRENT_USER ISV_TABLENAME VARCHAR2(100);V_SQL VARCHAR2(1000);...原创 2018-08-19 00:07:01 · 585 阅读 · 0 评论 -
闪回delete 表的数据
--闪回到一个时间点ALTER TABLE EMP ENABLE ROW MOVEMENTFLASHBACK TABLE EMP TO TIMESTAMP TO_DATE('2015-03-04 10:45:00','YYYY-MM-DD HH24:MI:SS')ALTER TABLE EMP DISABLE ROW MOVEMENT--闪回到5分钟以前 ALTER TABLE E...原创 2018-08-19 00:08:03 · 287 阅读 · 0 评论 -
Oracle 汉字排序
--Oracle 汉字排序 ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_PINYIN_M') --按照拼音排序ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_RADICAL_M') --按照部首排序ORDER BY nlssort(NAME, 'NLS_SORT=SCHINESE_STROKE_M') --按照...转载 2018-08-19 00:08:30 · 890 阅读 · 0 评论 -
DBA权限仍然无法创建视图
在创建用户的时候如果直接给用户DBA权限,那么在B用户中可以直接查询A用户的表,但是在创建视图时就会报无权限,在这种情况下需要再在被访问的A用户里面去给予要访问该表的B用户授权。解决方法:1、使用system用户登录,connect as DBA2、赋予scott用户创建视图的权限:GRANT CREATE VIEW TO SCOTT3、赋予scott可以查询任何表的权限:GRANT...转载 2018-08-17 12:03:27 · 2026 阅读 · 0 评论 -
set autotrace on 报cannot set autotrace 错误
今天在一台机器中想分析下执行计划,但是在sqlplus中输入set autotrace on 报cannot set autotrace 错误解决方法如下:首先必须采用用Oracle的sqlplus登陆sys账号sqlplus " sys/sys@XXX as sysdba "然后执行如下脚本:@?\sqlplus\admin\plustrce.sql (创建plustrace...转载 2018-08-17 12:02:41 · 804 阅读 · 0 评论 -
表基本信息修改
示例操作如下--班级信息表create table t_class_info( classno number(3) primary key, classname varchar2(10), classplace varchar2(13) ); --学生信息表create table t_student_info( stuno number(3), classno n...原创 2018-08-17 12:01:51 · 520 阅读 · 0 评论 -
表空间删除不了 提示 ora01561 无法删除指定表空间中的所有对象
--删除用户drop user HA_SOAR cascade;--删除用户下的表空间alter tablespace HA_SOAR_DATA offline ;drop tablespace HA_SOAR_DATA including contents and datafiles;--然后报错 ora01561 错误,无法删除指定表空间下的所有对象--查询这个表...原创 2018-08-17 12:01:07 · 1206 阅读 · 1 评论 -
insert 脚本里面含有&怎么处理??
如下为转载,感觉原创作者,因为是以前记录的笔记,转载链接未记录。 for exampleinsert into t values ('R&D search thing');这样在plsql/dev 里面运行就插不进去,问下有撒好的解决办法没有?-----------------------------------------------------------------...转载 2018-08-17 11:59:41 · 1707 阅读 · 0 评论 -
闪回归档 oracle 11 新增功能
--闪回归档 oracle 11 新增功能 --从Oracle Database 11g开始,Oracle 提供了一个这样的功能:闪回数据归档(Flashback Data Archive)。--通过这一功能Oracle数据库可以将UNDO数据进行归档,从而提供全面的历史数据查询,--也因此Oracle引入一个新的概念Oracle Total Recall,也即Oracle全面回忆功能。...原创 2018-08-17 11:57:02 · 188 阅读 · 0 评论 -
删除重复数据
删除重复数据,虽然知道这两条语句很久了,还是记录一下吧DELETE FROM EMP1 E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP1 X WHERE X.EMPNO = E.EMPNO);DELETE FROM TEST1 A WHERE EXISTS (SELECT 1 FROM TEST1 B WHERE A.EM...原创 2018-08-17 11:22:05 · 384 阅读 · 0 评论 -
SQL查询结果写入txt
什么也不说,直接来个例子。此文章是转载的,感谢原创作者。 CREATE OR REPLACE PROCEDURE PROC_INSERTSQLTXT AS V_FILE UTL_FILE.FILE_TYPE; V_INPUT CLOB;BEGIN V_FILE := UTL_FILE.FOPEN('DATA_PUMP_DIR', 'EMPNO.TXT', 'W'); ...转载 2018-08-17 11:20:37 · 5030 阅读 · 0 评论 -
INSERT成功的数据,不能INSERT的插入错误日志表
--参数过程,可以研究一下dbms_errlog 这个包dbms_errlog.create_error_logprocedure create_error_log(dml_table_name varchar2, err_log_table_name varchar2 default NULL, ...原创 2018-08-17 11:18:17 · 1943 阅读 · 0 评论 -
查一个星期的周一
-- 这样查出来是本周一 select trunc(sysdate,'iw') from dual;原创 2018-08-19 00:25:04 · 405 阅读 · 0 评论 -
SQL查询包含下划线的的字段内容
SELECT * FROM scott.emp where ename like '%\_%' escape '\';SELECT * FROM scott.emp where regexp_like (ename,'_');原创 2018-08-19 00:23:31 · 7605 阅读 · 4 评论 -
to_char 的其他用法,第几周,第几天,星期几,第几季
select to_char(sysdate, 'w') from dual; --一个月中的第几周select to_char(sysdate, 'ww') from dual; --一年中的第几周Select to_char(sysdate, 'd') from dual; --一周的第几天Select to_char(sysdate, 'day') from dual; --当前日期...原创 2018-08-19 00:21:53 · 4017 阅读 · 0 评论 -
自定义分组 写一个查询
有一个查询,按房屋面积范围分组查询,并且要根据面积状态类型来区分面积, 直接上图SQL 如下:SELECT CASE WHEN (MJZTLX=0 AND YCMJ_JZ>=0 AND YCMJ_JZ=0 AND SCMJ_JZ WHEN (MJZTLX=0 AND YCMJ_JZ>=60 AND YCMJ_JZ=60 AND SCMJ_JZ WHEN原创 2016-05-09 10:10:54 · 448 阅读 · 0 评论 -
将一个字段中以符号分隔的多个数字进行排序显示
如图,要将my_list 列变为 my_list2 列 ,测试数据如下CREATE TABLE test_num(my_LIST VARCHAR2(125));insert into test_num (MY_LIST)values ('1,4');insert into test_num (MY_LIST)values ('9,2,1');inse原创 2016-05-11 10:48:17 · 1400 阅读 · 0 评论 -
删除一个用户下的所有表
有两种方式 方式一:BEGIN FOR TABLENAME IN (SELECT TABLE_NAME FROM USER_TABLES) LOOP EXECUTE IMMEDIATE 'DROP TABLE ' || TABLENAME.TABLE_NAME || ' PURGE'; END LOOP;END;方式二:DE原创 2015-12-29 18:42:49 · 878 阅读 · 0 评论 -
数据库中批量授权与回收权限
--授予 查询 插入 权限 DECLARE CURSOR CUR_A IS SELECT TABLE_NAME FROM USER_TABLES;V_VAR VARCHAR2(1000);BEGIN OPEN CUR_A; LOOP FETCH CUR_A INTO V_VAR; EXIT WHEN CUR_A%NOTFOUND; E原创 2015-12-29 18:44:41 · 1799 阅读 · 0 评论 -
闪回归档
--闪回归档 oracle 11 新增功能 --从Oracle Database 11g开始,Oracle 提供了一个这样的功能:闪回数据归档(Flashback Data Archive)。--通过这一功能Oracle数据库可以将UNDO数据进行归档,从而提供全面的历史数据查询,--也因此Oracle引入一个新的概念Oracle Total Recall,也即Oracle全面回忆功原创 2015-12-29 18:47:57 · 362 阅读 · 0 评论 -
收缩表和索引
收缩表和索引 释放空间SELECT 'ALTER table '||OWNER||'.'||table_NAME||' enable row movement ;'FROM DBA_tables WHERE OWNER='&USER'union all SELECT 'ALTER table '||OWNER||'.'||table_NAME||' shrink原创 2015-12-29 18:49:58 · 504 阅读 · 0 评论 -
字符串按规定分隔符号拆分
如下:'123,456,789,101112' 要拆分成四行 123456789101112 SQL如下select substr(colname,instr(colname, ',',1,level)+1, instr(colname,',',1,level+1)-原创 2016-01-28 11:34:59 · 997 阅读 · 0 评论 -
两时间之间相隔的 天 时 分 秒
如下: SQL> select sysdate-to_date('2013-08-11 18:30:59','yyyy-mm-dd hh24:mi:ss')ts from dual; TS ----------原创 2016-01-30 12:59:58 · 481 阅读 · 0 评论 -
查数据库的scn 号的两种方式
查数据库的scn 号 有如下两种方式,在plsql 中执行,SELECT CURRENT_SCN FROM V$DATABASE; SELECT DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER FROM DUAL; 在sqlplus 中执行 显示的科学计数。原创 2016-01-30 13:08:05 · 1621 阅读 · 0 评论 -
regexp_like字符串中的指定字符串或者字符,区分逗号
23,3,11,71,18,281,11,7,711,12,71,3427,19,721,6,201,18,34这样一组数据 要查出1,11,7,711,6,201,18,34这样的sql 如下 select * from t99 where regexp_like(name,',1,|原创 2016-08-11 18:17:25 · 3002 阅读 · 0 评论 -
通过在线重定义将普通表转成分区表
通过在线重定义,将普通表转成分区表SELECT * FROM TEST.TAB1; --查询表是否可以使用在线重定义,如果不返回任何内容,则可以call dbms_redefinition.can_redef_table('TEST','TAB1');--创建中间表分区表,表结构与源表一样,下面以时间分区,分区的表空间,分多少区自己定义CREATE TA原创 2016-08-17 10:00:02 · 348 阅读 · 0 评论 -
传输表空间迁移数据步骤
使用传输表空间迁移数据 win 下同版本数据库,或者由低版本向高版本迁移数据。--检查字符集一致性和平台关系select PLATFORM_ID , PLATFORM_NAME from v$database;select value from nls_database_parameters where parameter='NLS_CHARACTERSET';se原创 2016-05-06 17:10:32 · 719 阅读 · 0 评论 -
oracle https://localhost:1158/em 无法打开
https://localhost:1158/em 这种方式无法打开 控制台,在网上搜索了好大会,1、在 C:\Windows\System32\drivers\etc 里加本机ip 的,2、控制台服务没有启动的,3、关闭防火墙4、添加到信息站点5、网页工具中降低安全设置试了以上5个方法都不管用,最后点击详细信息,如下图 标 红色框内的,于是我将 https://原创 2016-01-19 20:21:37 · 10280 阅读 · 2 评论