Hey!! Sky!

Nov 02, 2005

[案例]ORA-01654错误的解决

错误提示:ORA-01654: unable to extend index NWMGR.IDX_FCSTDRAFT_TMP by 128 in tablespace NTWKSDATA
ORA-01654: 索引NWMGR.IDX_FCSTDRAFT_TMP无法通过128(在表空间NTWKSDATA中)扩展


错误原因:表空间空间不够,或者索引表空间不足


解决方法:a.增加相应表空间的数据文件
                  b.如果是索引表空间不足,可rebuild重建索引.


1、增加datafile
ALTER TABLESPACE NTWKSDATA ADD DATAFILE 'file name' SIZE 100M
2、增加属于该tablsapce的datafile的大小
ALTER DATABASE DATAFILE 'file name' RESIZE <1000000>M
3、也可以减少next extent 或者pct_increase的值
4、其它的可以减少碎片,或者整理COALESCE这个tablespace。

用前两个方法的一个吧

Sep 16, 2005

Like 不完全小结,自己的体会

语法

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]


参数

match_expression


任何字符串数据类型的有效 SQL Server 表达式。


pattern


match_expression 中的搜索模式,可以包含下列有效 SQL Server 通配符。























通配符 描述 示例
% 包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。
_(下划线) 任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
[ ] 指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 C 与 P 之间的任何单个字符开始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
[^] 不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 l 的所有作者的姓氏。


escape_character


字符串数据类型分类中的所有数据类型的任何有效 SQL Server 表达式。escape_character 没有默认值,且必须仅包含一个字符。


结果类型

Boolean


结果值

如果 match_expression 匹配指定模式,LIKE 将返回 TRUE。


个人使用体会

1.字段名并不一定要出现在 LIKE 之前,如:
select table_name from user_tables where 'A' like table_name || '%'


2.将通配符作为文字使用:
LIKE '5[%]'  -> 5%


3.使用 ESCAPE 子句的模式匹配:
ESCAPE 后只能跟字符,该字符表示,在 LIKE 后的字符串中,如看到该字符,则其后的一个字符产生转义:
SELECT notes
FROM titles
WHERE notes LIKE '50%% off when 100 or more copies are purchased'
   ESCAPE '%'

4.不与 LIKE 一同使用的通配符将解释为常量而非模式,换言之,这些通配符仅代表其本身的值。
select table_name from user_tables where 'A%' like table_name
'A%' 中 % 表示其自身


5.关于字符串连接符:
sql-92 中 || 等价于 concat()表示将两个字符串连接
oralce 符合 sql-92
sql server 使用 + 号来连接字符串,没有 || 和 concat()

Sep 15, 2005

补 DFU

按照 DFU 框架创建 DFU_BKXXX 备份表,将 DMDUNIT = '1342' 的 DFU 插入备份表(注:按照需要补的 DFU 的层面插入 DFU,如 4-1-5 或者 4-3-5 等),将 插入的 DFU 修改为需要补充的 DFU ,修改完之后再将备份表的数据插入 DFU 表。补之前先确保 DFU 中个元素都存在。