<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Administración de ORACLE en Español &#187; csscan</title>
	<atom:link href="http://colacios.es/blog/WordPress3/tag/csscan/feed/" rel="self" type="application/rss+xml" />
	<link>http://colacios.es/blog/WordPress3</link>
	<description>Administración de Base de datos ORACLE en español</description>
	<lastBuildDate>Tue, 11 Mar 2014 12:56:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cómo cambiar CHARACTER SET en ORACLE en versiones 10G y posterior</title>
		<link>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-en-versiones-10g-y-posterior/</link>
		<comments>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-en-versiones-10g-y-posterior/#comments</comments>
		<pubDate>Fri, 04 Jan 2013 12:25:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[character set]]></category>
		<category><![CDATA[csalter]]></category>
		<category><![CDATA[csscan]]></category>
		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=68</guid>
		<description><![CDATA[En otro artículo del blog ya expliqué como cambiar el CHARACTER SET de una Base de datos Oracle hasta la versión 8i. En este artículo explicaré como hacerlo en versiones posteriores. Yo lo he probado en versión 11GR2. He de &#8230; <a href="http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-en-versiones-10g-y-posterior/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">En otro <a title="Cambiar CHARATER SET hasta versión 8i" href="http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-hasta-version-8i/" target="_blank">artículo</a> del blog ya expliqué como cambiar el CHARACTER SET de una Base de datos Oracle hasta la versión 8i. En este artículo explicaré como hacerlo en versiones posteriores. Yo lo he probado en versión 11GR2. He de comentar, que si por el motivo que sea, nos vemos obligados a cambiar el CHARACTER SET de una base de datos Oracle, lo más recomendable es iniciar la instalación del servidor Oracle de nuevo y crear la base de datos con el CHARACTER SET adecuado durante el mismo proceso de instalación. Esto nos evitará futuros quebraderos de cabeza. Pero si es inevitable tener que &#8220;recrear&#8221; este cambio porque ya tenemos información en la Base de datos, no nos queda más remedio que utilizar el siguiente método y &#8220;cruzar los dedos&#8221; para que el cambio sea lo más exitoso posible.</p>
<p style="text-align: justify;">El proceso de cambio consta de dos etapas: El escaneado de los datos y la conversión de los datos. Para ello utilizaremos la utilidad CSSCAN para la primera etapa y el script CSALTER (csalter.plb) para la segunda.</p>
<p style="text-align: justify;"> La utilidad CSSCAN se utiliza para descartar de la base de datos posibles problemas de conversión de juegos de caracteres y truncamiento de datos. Los datos de escaneo identifica la &#8220;cantidad de esfuerzo&#8221; necesario para migrar los datos en el nuevo esquema de caracteres antes de realizar el cambio. Esta información nos ayudará a determinar el mejor enfoque antes de realizar la conversión.</p>
<p style="text-align: justify;">El script CSALTER es parte de la utilidad de escaneo  mencionada y es la forma más directa para migrar el juego de caracteres (character set), pero puede ser utilizado de manera independiente si el juego de caracteres de la bases de datos es un subconjunto del nuevo juego de caracteres.</p>
<p style="text-align: justify;">Por tanto, se puede decir que el nuevo juego de caracteres es un &#8220;superset&#8221; o superconjunto del conjunto de caracteres actual si:</p>
<p style="text-align: justify;">- Todos y cada carácter en el conjunto de caracteres actual está disponible en el nuevo conjunto de caracteres.</p>
<p style="text-align: justify;"> - Todos y cada carácter en el conjunto de caracteres actual  tiene el mismo valor de cógido (code point) en el nuevo conjunto de caracteres.</p>
<p style="text-align: justify;">Los pasos para migrar son los siguientes:</p>
<p style="text-align: justify;">Hecho en esta  versión:</p>
<p style="text-align: justify;"><em>Database Version: Oracle 11g Database R2 (11.2.0.3)</em><br />
<em>Source Character Set: AL32UTF8</em><br />
<em>Target Character Set: WE8ISO8859P1</em></p>
<p style="text-align: justify;"><strong>- Parar la Base de datos en modo inmediato o normal. (Recomiendo mejor immediate)</strong></p>
<p style="text-align: justify;"><strong>SQL&gt; shutdown immediate;</strong><br />
Database closed.<br />
Database dismounted.<br />
ORACLE instance shut down.</p>
<p style="text-align: justify;"><strong>- Realizar un Backup completo de la Base de datos. Yo recomiendo realizarla en &#8220;frio&#8221; y también realizar una copia con la utilidad (expdp /impdp).</strong></p>
<p style="text-align: justify;">A veces, la conversión de datos incorrectos puede provocar daños en los datos, por lo que realizar una copia de seguridad completa de la base de datos antes de intentar migrar los datos a un nuevo conjunto de caracteres es <strong><span style="text-decoration: underline;">imprescindible</span></strong>. La base de datos puede ser reconstruida posteriormente utilizando la copia de seguridad realizada antes de esta acción, si algo sale mal.</p>
<p style="text-align: justify;"><strong>- Volver a poner en marcha la Base de datos</strong></p>
<p style="text-align: justify;"><strong>SQL&gt; startup</strong>;<br />
ORACLE instance started.</p>
<p style="text-align: justify;">Total System Global Area 2097152000 bytes<br />
Fixed Size 2074120 bytes<br />
Variable Size 771754488 bytes<br />
Database Buffers 1308622848 bytes<br />
Redo Buffers 14700544 bytes<br />
Database mounted.<br />
Database opened.</p>
<p style="text-align: justify;"><strong> - Ejecutar la utilidad de scaner (CSSCAN)</strong></p>
<p style="text-align: justify;">El ejecutable de esta utilidad se ubica en el directorio <strong>$ORACLE_HOME/bin</strong></p>
<p style="text-align: justify;"><strong>$ csscan \&#8221;<a href="mailto:sys/password@mydb">sys/password@mibd</a> as sysdba\&#8221; full=y</strong></p>
<p style="text-align: justify;">donde <strong>midb</strong> corresponde al nombre de mi base de datos.</p>
<p style="text-align: justify;">Character Set Scanner v2.1 : Release 11.2.0.3.0 &#8211; Production on Sat Sep 13 15:58:28 2008<br />
Copyright (c) 1982, 2005, Oracle. All rights reserved.<br />
Connected to:<br />
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 &#8211; 64bit Production<br />
With the Partitioning, OLAP and Data Mining options<br />
Current database character set is AL32UTF8.<br />
Enter new database character set name: &gt; <strong>WE8ISO8859P1 (Especificar el nuevo juego de caracteres)</strong><br />
Enter array fetch buffer size: 1024000 &gt;<br />
Enter number of scan processes to utilize(1..32): 1 &gt; 32<br />
Enumerating tables to scan&#8230;<br />
. process 1 scanning SYS.SOURCE$[AAAABIAABAAAAIRAAA]<br />
. process 2 scanning SYS.SOURCE$[AAAABIAABAAAHCJAAA]<br />
. process 3 scanning SYS.ATTRIBUTE$[AAAAC1AABAAAAURAAA]<br />
…………………………………………………………………………….<br />
…………………………………………………………………………….<br />
…………………………………………………………………………….</p>
<p style="text-align: justify;">Creating Database Scan Summary Report&#8230;<br />
Creating Individual Exception Report&#8230;<br />
Scanner terminated successfully.<br />
$</p>
<p style="text-align: justify;">Si se necesita más información de cómo funciona la utilidad CSSCAN se puede invocar a la ayuda en línea de la misma herramienta:</p>
<p style="text-align: justify;">$ csscan help=y</p>
<p style="text-align: justify;"><strong>- Ejecución del script de conversión CSALTER</strong></p>
<p style="text-align: justify;">Una vez se ha pasado la utilidad CSSCAN y se ha completado con éxito, debemos volver a parar la Base de datos y volverla a abrir pero esta vez en modo restringido, ya que ningún usuario normal debe poder acceder durante la taréa de conversión. Por tanto conectados como el usuario SYS ejecutaremos el script <strong>csalter.plb</strong> como sigue. Tened en cuenta que el script se encuentra ubicado en el directorio <strong>$ORACLE_HOME/RDBMS/admin</strong>.</p>
<p style="text-align: justify;"><strong>$ sqlplus /nolog</strong></p>
<p style="text-align: justify;"><strong>$ connect /as sysdba;</strong></p>
<p style="text-align: justify;"><strong>SQL&gt; shutdown immediate;</strong><br />
Database closed.<br />
Database dismounted.<br />
ORACLE instance shut down.</p>
<p style="text-align: justify;">Start Up the Database in Restricted Mode.</p>
<p style="text-align: justify;"><strong>SQL&gt; startup restrict;</strong><br />
ORACLE instance started.</p>
<p style="text-align: justify;">Total System Global Area 2097152000 bytes<br />
Fixed Size 2074120 bytes<br />
Variable Size 771754488 bytes<br />
Database Buffers 1308622848 bytes<br />
Redo Buffers 14700544 bytes<br />
Database mounted.<br />
Database opened.</p>
<p style="text-align: justify;">Ejecutar el script csalter.plb &#8230;</p>
<p style="text-align: justify;"><strong>SQL&gt; @?/rdbms/admin/csalter.plb</strong></p>
<p style="text-align: justify;">0 rows created.</p>
<p style="text-align: justify;">Function created.</p>
<p style="text-align: justify;">Function created.</p>
<p style="text-align: justify;">Procedure created.</p>
<p style="text-align: justify;">This script will update the content of the Oracle Data Dictionary.<br />
Please ensure you have a full backup before initiating this procedure.<br />
Would you like to proceed (Y/N)?<strong>y ( Contestar que sí &#8220;y&#8221;)</strong><br />
old 6: if (UPPER(&#8216;&amp;conf&#8217;) &lt;&gt; &#8216;Y&#8217;) then<br />
new 6: if (UPPER(&#8216;y&#8217;) &lt;&gt; &#8216;Y&#8217;) then<br />
Checking data validility&#8230;<br />
begin converting system objects<br />
12 rows in table SYS.WRI$_ADV_RATIONALE are converted<br />
1 row in table MDSYS.SDO_GEOR_XMLSCHEMA_TABLE is converted<br />
80 rows in table SYS.METASTYLESHEET are converted<br />
17 rows in table SYS.WRI$_DBU_HWM_METADATA are converted<br />
79 rows in table SYS.WRI$_DBU_FEATURE_METADATA are converted<br />
4 rows in table SYS.RULE$ are converted<br />
78 rows in table MDSYS.SDO_STYLES_TABLE are converted<br />
10576 rows in table SYS.WRH$_SQL_PLAN are converted<br />
21 rows in table SYS.WRI$_DBU_FEATURE_USAGE are converted<br />
19 rows in table SYS.WRI$_ADV_ACTIONS are converted<br />
4 rows in table MDSYS.SDO_XML_SCHEMAS are converted<br />
2308 rows in table MDSYS.SDO_COORD_OP_PARAM_VALS are converted<br />
578 rows in table SYS.WRI$_ADV_OBJECTS are converted<br />
789 rows in table SYS.WRH$_SQLTEXT are converted</p>
<p style="text-align: justify;">PL/SQL procedure successfully completed.</p>
<p style="text-align: justify;">Alter the database character set&#8230;<br />
CSALTER operation completed, please restart database</p>
<p style="text-align: justify;">PL/SQL procedure successfully completed.</p>
<p style="text-align: justify;">0 rows deleted.</p>
<p style="text-align: justify;">Function dropped.</p>
<p style="text-align: justify;">Function dropped.</p>
<p style="text-align: justify;">Procedure dropped.</p>
<p style="text-align: justify;"><strong>- Una vez acaba la ejecución del script volver a parar la base de datos y volver a arrancarla para comprobar que los cambios se han realizado correctamente.</strong></p>
<p style="text-align: justify;">Parar la base de datos ..</p>
<p style="text-align: justify;"><strong>SQL&gt; shutdown immediate;</strong><br />
Database closed.<br />
Database dismounted.<br />
ORACLE instance shut down.</p>
<p style="text-align: justify;">Volver a arrancarla &#8230;</p>
<p style="text-align: justify;"><strong>SQL&gt; startup;</strong><br />
ORACLE instance started.</p>
<p style="text-align: justify;">Total System Global Area 2097152000 bytes<br />
Fixed Size 2074120 bytes<br />
Variable Size 771754488 bytes<br />
Database Buffers 1308622848 bytes<br />
Redo Buffers 14700544 bytes<br />
Database mounted.<br />
Database opened.<br />
SQL&gt;</p>
<p style="text-align: justify;">Asegurarse/Comprobar que se han realizado los cambios &#8230;</p>
<p style="text-align: justify;"><strong>SQL&gt; SELECT * FROM nls_database_parameters;</strong></p>
<p style="text-align: justify;"> Debe aparecer el nuevo juego de caracteres &#8230; <strong>WE8ISO8859P1</strong> en este ejemplo.</p>
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-en-versiones-10g-y-posterior/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CÓMO CAMBIAR CHARACTER SET EN ORACLE hasta versión 8i</title>
		<link>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-hasta-version-8i/</link>
		<comments>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-hasta-version-8i/#comments</comments>
		<pubDate>Tue, 11 Dec 2012 15:53:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Administración Oracle]]></category>
		<category><![CDATA[character set]]></category>
		<category><![CDATA[csalter]]></category>
		<category><![CDATA[csscan]]></category>

		<guid isPermaLink="false">http://colacios.es/blog/WordPress3/?p=26</guid>
		<description><![CDATA[Los pasos para cambiar el character set de una base de datos Oracle hasta la versión 8i se hace de la siguiente manera:  Desde la consola de SQLPLUS: 1) shutdown immediate; 2) startup mount; 3) alter system enable restricted session; &#8230; <a href="http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-hasta-version-8i/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Los pasos para cambiar el character set de una base de datos Oracle hasta la versión 8i se hace de la siguiente manera:</p>
<p style="text-align: justify;"> Desde la consola de <strong>SQLPLUS</strong>:</p>
<p style="text-align: justify;">1) shutdown immediate;<br />
2) startup mount;<br />
3) alter system enable restricted session;<br />
4) alter system set job_queue_processes=0;<br />
5) alter database open;<br />
6) alter database character set <strong>WE8ISO8859P1</strong>; (en esta línea, va el juego de caracteres al que queremos pasar nuestra BD)<br />
7) shutdown immediate;<br />
 <img src='http://colacios.es/blog/WordPress3/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> startup;</p>
<p style="text-align: justify;">¡Y con eso es todo!</p>
<p style="text-align: justify;">Hay que tener en cuenta que si la BD ya tiene información almacenada pueden salir registros con carácteres &#8220;extraños&#8221; que se tendrían que modificar y puede ser bastante engorroso. Yo recomiendo estos pasos para BD que se pueden modificar esos carácteres extraños de manera fácil, o BD que no tienen información y que hemos creado con un CHARACTER SET erróneo.</p>
<p style="text-align: justify;">Para <strong>VER</strong> que <strong> CHARACTER SET</strong> tenemos instalado podemos ejecutar:</p>
<p style="text-align: justify;"><strong>SQL&gt; select * from nls_database_parameters;</strong> <br />
 </p>
<p style="text-align: justify;">Para versiones posteriores crearé otro post con todos los pasos necesarios.</p>
]]></content:encoded>
			<wfw:commentRss>http://colacios.es/blog/WordPress3/como-cambiar-character-set-en-oracle-hasta-version-8i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
