2009年04月20日

一、特殊符号ascii定义
 制表符 char(9)
 换行符 char(10)
 回车符 char(13)

二、嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行
          select REPLACE(gg, chr(10), ”) from dual
    要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
          select translate(string,chr(13)||chr(10),’,') from dual;
1、例子一
create table TEST_1
(
  VA  VARCHAR2(10),
  VB  NUMBER(2),
  VC  VARCHAR2(10),
  VD  NUMBER(11,2),
  VE  NUMBER(11,4),
  VCL CLOB
);

SQL> select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(10),’,') from test_1;
 
 VB VC         TT         TRANSLATE(VC,CHR(10),’,')
— ———- ———- ————————-
  0 Aaaaaaaaa  Aaaaaaaaa  Aaaaaaaaa
  1 Aaaaaaaaa  Aaaaaaaaa  Aaaaaaaaa
  2 大Ba       大Babc带   大Ba,b,c带
    b                    
    c带                  
 
  3 C          C          C
  1 D          D          D
  5 A          A          A
  5 A          A          A
  0 A          A          A
  0 A          A          A
 
 2、例子二
要注意chr(13) | | chr(10) 此类结合使用的情况比较多,回车换行在notepad中是比较好看点的,所以要考虑此种情况
select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(13)||chr(10),’,') from test_1;
SQL> select vb,vc,replace(vc,chr(10),”) as TT, translate(vc,chr(13)||chr(10),’,') from test_1;
 
 VB VC         TT         TRANSLATE(VC,CHR(13)||CHR(10),
— ———- ———- ——————————
  0 Aaaaaaaaa  Aaaaaaaaa  Aaaaaaaaa
  1 Aaaaaaaaa  Aaaaaaaaa  Aaaaaaaaa
  2 大Ba       大Babc带   大Babc带
    b                    
    c带                  
 
  3 C          C          C
  1 D          D          D
  5 A          A          A
  5 A          A          A
  0 A          A          A
  0 A          A          A
 
11 rows selected

三、对于字符大对象的符号处理
    对于clob字段中的符号处理,先to_char然后一样的处理

SQL> select to_char(vcl),replace(to_char(vcl),chr(10),’[]‘) from test_1;
 
TO_CHAR(VCL)                                                                     REPLACE(TO_CHAR(VCL),CHR(10),’
——————————————————————————– ——————————————————————————–
嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行                        嵌套使用repalce,注意每次只能提交一个符号,如先回车再换行[]select REPLACE(gg, chr(10), ”) from dual[]sel
select REPLACE(gg, chr(10), ”) from dual                                       
select translate(string,chr(13)||chr(10),’,') from dual;                        
 

ORA-00988: missing or invalid password(s)

oracle用户的口令必须是字母打头,数字不能做为开头,否则在创建数据链路或其他使用口令的地方会出现错误。
10g以下为ora-00988
10g以上为ora-00933
错误

ORA-31495错误,该错误为CDC不能使用捕捉表错误,初步定位为CDC出现问题。

检查CDC的捕捉表正常,但没有数据能捕捉,详细分析后检查change_tables发现下列表出现了两张不同schema的捕捉定义
将错误的订阅视图DROP,检查CDC的捕做表,问题解决

创建CDC过程挂起不报错,后台出现ORA-07445错误,其余其他表全部创建成功正常运行。而问题表错误为:
ORA-07445: exception encountered: core dump [0000000000000000] [SIGSEGV] [Invalid permissions for mapped object] [0x000000000] [] []
Trace文件内出现问题的操作为oracle内部的系统级操作:
BEGIN SYS.DBMS_CDC_UTILITY.SETUP_SYNC_TABLE(‘PCS_CDC_SERVICES’,'CDC_B_WT); END;
怀疑是该表的某类系统级资源被不正常锁定或占用引起;
重新启动数据库可解决此问题.