2019-08-09 oracle父子结构转分级码结构 oracle父子结构转分级码结构 第一步增加列用于临时处理ALTER TABLE GSPUSERDOMAIN ADD fid varchar2(36) ALTER TABLE GSPUSERDOMAIN ADD pathtemp varchar2(36) 第二步插入父节点insert into GSPUSERDOMAIN(id,code,name,PATH,LAYER,isdetail,fid,pathtemp) select id,danweidh,mingcheng,ID,level,connect_by_isleaf,shangji,'' from JIGOU start with id in(select id from JIGOU where shangji IS NULL) connect by shangji=prior id order by shangji 第三步处理路径declare vInit VARCHAR2(36):=0; begin for i in 1..10 loop declare CURSOR emp_cur IS... Laughing 2019-08-09 数据库 1,273 阅读 0 评论 2019年08月09日 1,273 阅读 0 评论
2018-02-02 plsql自动替换 plsql自动替换 自动替换:快捷输入SQL语句,例如输入s,按下空格,自动替换成SELECT;再例如,输入sf,按下空格,自动替换成SELECT * FROM,非常方便,节省了大量的时间去编写重复的SQL语句。设置方法:菜单Tools–>Preferences–>Editor–>AutoReplace(自动替换)–>Edit建立一个文本文件shortcuts.txt,并写入如下内容:s=SELECT复制代码另存到PL/SQL Developer的安装路径下的~/PlugIns目录下Tools–>Preferences–>User Interface–>Editor–>AutoReplace,选中Enable复选框,然后浏览文件选中之前创建的shortcuts.txt,点击Apply。3)、重启PL/SQL Developer,在sql窗口中输入s+空格,sc+空格做测试。注意:shortcuts.txt不可删除掉,否则快捷键无法用下面定义了一些规则作为参考i=INSERT u=UPDATE s=SELECT f=FROM w=WHER... Laughing 2018-02-02 数据库 1,284 阅读 0 评论 2018年02月02日 1,284 阅读 0 评论
2018-01-28 Oracle将多行查询结果合并成一行 Oracle将多行查询结果合并成一行 今天项目上写sql,遇到一个问题,需要将查询结果的多行数据,按照分号分隔成一条数据。借助LISTAGG('','')函数实现需求函数说明如下LISTAGG(字段,'分隔符')只支持Oracle 11g以及以上版本SELECT LISTAGG(字段名,';') WITHIN GROUP(ORDER BY 字段名) AS 字段名 FROM 表名 Laughing 2018-01-28 数据库 1,228 阅读 0 评论 2018年01月28日 1,228 阅读 0 评论
2018-01-09 Oracle中删除表空间提示ORA-00604和ORA-38301 Oracle中删除表空间提示ORA-00604和ORA-38301 今天需要在本机上腾出空间,发现Oracle中有一个dbf文件占了约30G,这个数据文件对应的用户平时很少使用的,于是就想对它进行处理-删除表空间操作。本机的数据库是32位的10.2.0.1.0,表空间为TEST_TB存在若干个表数据。刚开始时用dba角色的system用户,直接执行drop tablespace test_tb including contents and datafiles;提示ORA-00604:递归SQL级别1出现错误ORA-38301:无法对回收站中的对象执行DDL/DML原因:dba_segments中存在该表空间test_tb的数据,可通过dba用户执行查询:select segment_name,segment_type,owner from dba_segments where tablespace_name='TEST_TB';处理方法:用该表空间所对应用户登录执行purge recyclebyin;重新执行drop tablespace test_tb incluing contents and datafiles;执行完毕后,dbf文件不存在... Laughing 2018-01-09 数据库 1,198 阅读 0 评论 2018年01月09日 1,198 阅读 0 评论
2017-06-30 解决ORA-14450:试图访问已经在使用的事务处理临时表 解决ORA-14450:试图访问已经在使用的事务处理临时表 最简单方法最简单的方法其实就是重启oracle服务,但是如果用户正在使用oracle那么此方法就不可行了杀死会话找到表对象select * from dba_objects where object_name='TEMP_HTGY_HTBD' --TEMP_HTGY_HTBD是表名找到该对象导致的锁的Session会话,并编写语句 select 'alter system kill session '''||SID||','||SERIAL#||''';' from V$session where SID in ( select sid from v$enqueue_lock t where t.type='TO' and id1='79360' )执行生成后的SQL语句解除死锁 Laughing 2017-06-30 数据库 1,143 阅读 0 评论 2017年06月30日 1,143 阅读 0 评论
2017-06-30 ORA-01157: 无法标识/锁定数据文件 解决方案 ORA-01157: 无法标识/锁定数据文件 解决方案 在删除表空间对应的文件后出现下面的问题:SQL> startupOracle 例程已经启动。 Total System Global Area 426852352 bytes Fixed Size 1333648 bytes Variable Size 306185840 bytes Database Buffers 113246208 bytes Redo Buffers 6086656 bytes 数据库装载完毕。 ORA-01157: 无法标识/锁定数据文件 7 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 7: 'C:/APP/ADMINISTRATOR/ORADATA/ORCL/DM_ECM_DCTM_ACCT20100917155302_IND.DBF'执行下面的修改后,恢复正常alter database datafile 'C:/APP/ADMINISTRATOR/ORADATA/ORCL/DM_ECM_DCTM_ACCT20100917155302_IND.DBF' offline drop; 数据库已更改。alter database... Laughing 2017-06-30 数据库 1,571 阅读 0 评论 2017年06月30日 1,571 阅读 0 评论