Archive

Archive for the ‘Oracle on Solaris’ Category

Oracle Character Scanner: csscan is 0 (zero) bytes in size on Solaris SPARC

Problem description:

You are trying to perform a character set scan on Solaris (SPARC), but the binary is exiting immediately:

oracle@ora01 $ cd $ORACLE_HOME/bin
oracle@ora01 $ ./csscan help=y
oracle@ora01 $ echo $?
0
oracle@ora01 $

 
When checking the executable, you’ll see a size of 0 bytes:

oracle@solaris01 $ ls -l /oracle/app/oracle/product/10.1.0/db_1/bin/csscan
-rwxr-xr-x   1 oracle   oinstall       0 Nov  9  2005 /oracle/app/oracle/product/10.1.0/db_1/bin/csscan
oracle@solaris01 $

 
Cause:

You are on Sun Solaris SPARC and have applied the Oracle Patch Set 10.1.0.5. Due to an internal unpublished Oracle bug (5051614), csscan related binaries are 0 bytes in size:

oracle@solaris01 $ cd $ORACLE_HOME/bin
oracle@solaris01 $ ls -l csscan lxchknlb lxegen lxinst
-rwxr-xr-x   1 oracle   oinstall       0 Nov  9  2005 csscan
-rwxr-xr-x   1 oracle   oinstall       0 Nov  9  2005 lxchknlb
-rwxr-xr-x   1 oracle   oinstall       0 Nov  9  2005 lxegen
-rwxr-xr-x   1 oracle   oinstall       0 Nov  9  2005 lxinst
oracle@solaris01 $

 
Problem resolution:

Download Oracle Patch 5051614 and copy/move the contained binaries (csscan, lxchknlb, lxegen and lxinst) to the $ORACLE_HOME/bin directory:

oracle@solaris01 $ pwd
/home/oracle/Patch5051614
oracle@solaris01 $ 
oracle@solaris01 $ unzip p5051614_10105_SOLARIS64.zip 
Archive:  p5051614_10105_SOLARIS64.zip
  inflating: csscan                  
  inflating: lxchknlb                
  inflating: lxegen                  
  inflating: lxinst                  
  inflating: README.txt              
oracle@solaris01 $ 
oracle@solaris01 $ ls -al
total 14838
drwxr-xr-x   2 oracle   oinstall     512 Jul 22 22:18 .
drwxr-xr-x  18 oracle   oinstall    1024 Jul 22 22:18 ..
-rw-rw-r--   1 oracle   oinstall  355952 Nov 29  2006 csscan
-rw-rw-r--   1 oracle   oinstall  940776 Nov 29  2006 lxchknlb
-rw-rw-r--   1 oracle   oinstall 1458272 Nov 29  2006 lxegen
-rwxrwxr-x   1 oracle   oinstall 2933984 Nov 14  2006 lxinst
-rw-r--r--   1 oracle   oinstall 1836231 Jul 22 22:18 p5051614_10105_SOLARIS64.zip
-rwxrwxr-x   1 oracle   oinstall     536 Nov 29  2006 README.txt
oracle@solaris01 $ 
oracle@solaris01 $ cp csscan $ORACLE_HOME/bin
oracle@solaris01 $ cp lxchknlb $ORACLE_HOME/bin
oracle@solaris01 $ cp lxegen $ORACLE_HOME/bin  
oracle@solaris01 $ cp lxinst $ORACLE_HOME/bin  
oracle@solaris01 $

 
After applying the functional binaries from Patch 5051614, you should be able to execute and use csscan:

oracle@solaris01 $ csscan help=y
 
 
Character Set Scanner v2.0 : Release 10.1.0.4.0 - Production on Fri Jul 22 22:48:55 2011
 
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
 
 
You can let Scanner prompt you for parameters by entering the CSSCAN        
command followed by your username/password:                                 
 
  Example: CSSCAN SYSTEM/MANAGER                                            
 
Or, you can control how Scanner runs by entering the CSSCAN command         
followed by various parameters. To specify parameters, you use keywords:    
 
  Example: CSSCAN SYSTEM/MANAGER FULL=y TOCHAR=utf8 ARRAY=102400 PROCESS=3  
 
Keyword    Default Prompt Description                                       
---------- ------- ------ ------------------------------------------------- 
USERID             yes    username/password                                 
FULL       N       yes    scan entire database                              
USER               yes    owner of tables to be scanned                     
TABLE              yes    list of tables to scan                            
EXCLUDE                   list of tables to exclude from scan               
TOCHAR             yes    new database character set name                   
FROMCHAR                  current database character set name               
TONCHAR                   new national character set name                   
FROMNCHAR                 current national character set name               
ARRAY      102400  yes    size of array fetch buffer                        
PROCESS    1       yes    number of concurrent scan process                 
MAXBLOCKS                 split table if block size exceed MAXBLOCKS        
CAPTURE    N              capture convertible data                          
SUPPRESS                  maximum number of exceptions logged for each table
FEEDBACK                  report progress every N rows                      
BOUNDARIES                list of column size boundaries for summary report 
LASTRPT    N              generate report of the last database scan         
LOG        scan           base file name of report files                    
PARFILE                   parameter file name                               
PRESERVE   N              preserve existing scan results                    
LCSD       N       no     enable language and character set detection       
LCSDDATA   LOSSY   no     define the scope of the detection                 
HELP       N              show help screen (this screen)                    
---------- ------- ------ ------------------------------------------------- 
Scanner terminated successfully.
oracle@solaris01 $