摘要: 【现象】:在想一个表中插入数据时,老是报出语法错误。例如:insert into acc.t_rpt_column_info (COLUMN_ID, TABLE_ID, COLUMN_NAME, order, POSITION, DATA_TYPE, DATA_TYPE_DESC, DICTIONARY_TYPE_ID, CONS_RULE, CONS_DESC, TXT_ID, TXT_COLUMN_ID, IS_SHOW, TAG_TYPE, CAN_MODIFY, HAS_INNER_TABLE, LOG_COLUMN_ID, IS_ENABLED, CAN_INPUT)values ( 阅读全文
posted @ 2013-03-29 22:43 AlbertCQY 阅读(2443) 评论(0) 推荐(0) 编辑
摘要: Decode函数使用:Oracle 的decode函数蛮有意思,是oracle独有的,国际标准SQL中并没有decode函数。语法DECODE(col|expression, search1, result1[, search2, result2,...,][, default])例子SELECT product_id,DECODE (warehouse_id, 1, 'Southlake',2, 'San Francisco',3, 'New Jersey',4, 'Seattle','Non domestic' 阅读全文
posted @ 2013-03-29 15:59 AlbertCQY 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 【使用场景】有很多同事问过我伪列的事情,主要想在导出数据的时候添加一些序列号==,其实伪列还有很多作用。官方参考文档:Oracle® DatabaseSQL Language Reference11g Release 2 (11.2)E17118-04ROWID Pseudocolumn& ROWNUM Pseudocolumn以下内容整理自互联网:Rowid 与 Rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的(如果对表进行shrink或者move 阅读全文
posted @ 2013-03-29 15:51 AlbertCQY 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 【SQL性能下降原因】如果表t1和t2字段a,b 上有索引并且表数据量很大。这种写法t1.a || t1.b || t1.c = t2.a || t2.b || t2.c是不会走索引的。应该写成t1.a=t2.a and t1.b=t2.b 这样就会根据索引检索数据,速度就很快了。测试:创建表1: create table t1 (a number,b date,c varchar2(10));插入测试数据:declare na integer; nc varchar2(10) :='test1';begin for na in 1..10000 loopinsert into 阅读全文
posted @ 2013-03-29 15:48 AlbertCQY 阅读(480) 评论(0) 推荐(0) 编辑
摘要: 【使用场景】:1、操作失误导致delete、update的数据已经提交。2、对一个表做了改动,你想看看有哪些数据发生了变化。3、误删除了function,procedure,trigger等【使用环境】:oracle 10g r1、oracle 10g r2、 Oracle 11g r1、 oracle 11g r2 【注意事项】:(1)基于undo的表恢复,需要注意DDL操作的影响。修改并提交过数据之后,对表做过DDL操作,包括:drop/modify列, move表, drop分区(如果有的话), truncate table/partition,这些操作会另undo表空间中的撤销数据失效 阅读全文
posted @ 2013-03-29 15:43 AlbertCQY 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 数据库使用了一段时间有时候突然会爆出表没有足够的空间,一般来说是用户配额空间满了,或者是表空间、磁盘空间满了。大部分情况还是表空间满了。 如果你经常看数据库的告警日志(日志位置$find /u01 -iname "alert*.log")和OEM上的信息很容易发现警告或者错误信息。但是我们大部分项目没有这样的条件,只能在pl/sql中看看。查询表空间‘空间’使用情况sql语句:SELECT F.TABLESPACE_NAME, TO_CHAR ((T.TOTAL_SPACE - F.FREE_SPACE),'999,999') "USED (MB) 阅读全文
posted @ 2013-03-29 15:40 AlbertCQY 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 使用回收站恢复表后发现主键名、索引名==系统会自动指定成以BIN开头的名字,导致给后续工作带来麻烦,例如:通过get_ddl 生成的SQL语句不能执行。使用回收站恢复误删除的表请参考:http://blog.csdn.net/u010033674/article/details/8736863解决方法:1、flashback 前 查询dba_recyclebin保存信息create table cqy_test as select * from dba_recyclebin;2、flashback table XXX to before drop;3、生成rename脚本select ' 阅读全文
posted @ 2013-03-29 15:27 AlbertCQY 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 不小心使用drop table语句把表删除了,数据也没有备份。就是数据备份了恢复的时候还是会丢失数据的,这时候不必太慌张,或许oracle的回收站(recyclebin)可以解决问题。 【使用环境】:oracle 10g r1、oracle 10g r2、 Oracle 11g r1、 oracle 11g r21、 检查数据库是否开启回收站功能。--默认是开启的SELECT Value FROM V$parameter WHERE Name = 'recyclebin';结果为ON说明开启2、 查询被删除的表是否在回收站中。当前用户下Select * from user_re 阅读全文
posted @ 2013-03-29 15:21 AlbertCQY 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 有时候向另外一个数据库中导入数据结果发现出现了乱码。其实这些乱码都是与oracle数据库的字符集有关。如果要避免乱码的产生只需要在使用PL/SQL导出用户数据的时候查看并设置windows客户端(oracle client)字符集是否和oracle server端字符集相匹配。 在使用PL/SQL导出用户数据时如下图:其实就是使用数据库的exp命令。如:exp datacore/datacore@uppr file=d:\datacore.dmp log=d:\datacore.log compress=n buffer=8092 consistent=y direct=n constrain 阅读全文
posted @ 2013-03-29 15:15 AlbertCQY 阅读(1218) 评论(0) 推荐(0) 编辑
摘要: 开发环境中:有的表中字段类型定义为varchar2(20)有的表中字段类型定义为varchar2(20 byte)varchar2(20)和varchar2(20 byte)是否相同呢?相不相同是由数据库的参数NLS_LENGTH_SEMANTICS决定的,有两个单位,char(字符)或者字节(byte),该参数默认值为BYTE。所以说,在默认情况下 varchar2(20) = varchar2(20 byte)。如果参数值为CHAR 就不相等。建议:使用统一的格式如:varchar2(20)演示:SQL> show parameter nls_length_semantics;NAM 阅读全文
posted @ 2013-03-29 15:08 AlbertCQY 阅读(1473) 评论(0) 推荐(0) 编辑
摘要: 如果你需要在Linux 中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim 中可以直接查看文件编码Shell代码 .:set fileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc 文件中添加以下内容:Shell代码 1).set encoding=u 阅读全文
posted @ 2013-03-29 15:00 AlbertCQY 阅读(384) 评论(0) 推荐(0) 编辑
摘要: 使用场景:笔记本同时使用有线和无线上网的网络问题网络环境: 1、我所在的环境是内外网隔离。 2、有线连的是内网(即局域网)。 3、无线连接可以访问外网(一般指Internet)的无线路由器。802.1.1出现的问题: 如果我的本地网络连接和无线网络连接同时打开我就不能访问外网只能访问内网。。 如果关闭本地连接,打开无线连接就可以访问外网不能访问内网。解决方法:修改windows路由内网: IP:10.201.168.1 子网掩码:255.255.255.0 默认网关:10.201.168.1 外网: IP:192.168.0.100 子网掩码:255.255.255.0 ... 阅读全文
posted @ 2013-03-29 14:49 AlbertCQY 阅读(711) 评论(0) 推荐(0) 编辑
摘要: 使用环境:出差两个同事住一个房间、网线不够用、没有路由器1、在windows命令窗口中运行以下命令netsh wlan set hostednetwork mode=allownetsh wlan set hostednetwork ssid=OPEN key=1234567890netsh wlan start hostednetwork命令解释:在笔记本插有网线的情况下,创建一个无线sid=OPEN密码为1234567890的热点。2、网络共享把插有网线的"本地连接"共享掉 阅读全文
posted @ 2013-03-29 14:42 AlbertCQY 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 方法:使用rlwrap工具,步骤:1. 在AIX上安装gcc工具,在也多网站上都有介绍,gcc for aix的安装方法此处略。ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/gcc/gcc-4.2.0-3.aix6.1.ppc.rpm,gcc-cplusplus-4.2.0-3.aix6.1.ppc.rpm,libgcc-4.2.0-3.aix6.1.ppc.rpm,libstdcplusplus-4.2.0-3.aix6.1.ppc.rpm,libstdcplusplus-devel-4.2.0-3.aix6. 阅读全文
posted @ 2013-03-29 14:28 AlbertCQY 阅读(347) 评论(0) 推荐(0) 编辑
摘要: bash shell是linux上默认的shell,可以使用tab补全,上下键切换历史命令等,比AIX(大部分的Unix系统)默认的ksh shell好用。IBM提供的所有AIX下能够安装的LINUX下的软件下载地址,里面包含bash shell:http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html1、下载bash软件ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/bash/bash-3.2-1.aix5.2.ppc.rp 阅读全文
posted @ 2013-03-29 14:25 AlbertCQY 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 怎样彻底删除系统服务项开始”——“运行”——“msconfig”回车在“服务”里面可以找到至于删除服务项,就请打开注册表(“开始”——“运行”——“regedit”)然后依次打开HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services,将你所希望删除的服务项从注册表里删除就行了,建议使用辅助软件来管理你的注册表项目(比如 360 安全卫士以及你说的 Windows 优化大师等)而不是用注册表编辑器怎样彻底删除系统服务项用SC Delete命令的话,如果服务名称中带空格,则请在服务名称前面用半角的双引号括起,如SC delete "Adobe L 阅读全文
posted @ 2013-03-29 14:20 AlbertCQY 阅读(470) 评论(1) 推荐(0) 编辑
摘要: 注册表修改大全《开始菜单及相关设置》[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]"NoRecentDocsMenu"=dword:00000001(隐藏开始->文档菜单)"NoRecentDocsHistory"=dword:00000001(禁止将打开的文档存入历史记录)"ClearRecentDocsOnExit"=dword:00000001(退出系统自动清除历史记录,包括文档、运行和查找)"NoFa 阅读全文
posted @ 2013-03-29 14:14 AlbertCQY 阅读(674) 评论(0) 推荐(0) 编辑