Archives for: May 2010

Las famosas comillas, para escribir una comilla ….. ahorratelas!!



Quien alguna vez no lucho con las comillas dentro de Sql Dinámicos para poder mostrar una comilla

Algo complicado, engorroso y dificultoso.



Claro, era el típico caso de que dentro de una instrucción debiamos colocar como trescientas comillas para que apareciera una , que entretenido!!!

Por ejemplo si queríamos una consulta dinámica , que nos desplegará un where con una literal , debiamos escribir algo así

Ejemplo :

var_sql := 'update '|| var_tabla ||' set campo1 = '||'valor literal';

Oviamente la sentencia anterior nos arrojaría error , pues en la transformación de la sentencia el CBO la asumiría como

Siendo var_tabla = TAB_PAGOS y 'valor literal' = ADF4561;

SQL> r
1 declare
2 var_sql varchar2(1000);
3 var_tabla varchar2(1000) := 'TABLA1';
4 begin
5 var_sql := 'update '||var_tabla||' set campo1 = '||'ADFR5141';
6 dbms_output.put_line(var_sql);
7* end;

update TABLA1 set campo1 = ADFR5141 –> Está sentenciada error si es ejecutada

PL/SQL procedure successfully completed.

SQL>

Por ende hay un error y se debiesen generar las comillas para su visualización

var_sql := 'update '|| var_tabla ||' set campo1 = '||''||'valor literal'||'';

SQL> r
1 declare
2 var_sql varchar2(1000);
3 var_tabla varchar2(1000) := 'TABLA1';
4 begin
5 var_sql := 'update '||var_tabla||' set campo1 = '||''||'ADFR5141'||''';
6 dbms_output.put_line(var_sql);
7* end;

update TABLA1 set campo1 = 'ADFR5141'; –> Funcionaría sin inconvenientes

Por lo que se ve es demasiado engorroso, ahora imaginanse coloca un formato de fecha dentro de ese enredo , con un to_char , ¿se enredaría mas cierto?

Pues bien, esto se soluciona en gran medida en Oracle10g, con una utilidad genial ,simplemente todo queda inscrito dentro de q'[…..]'

Inclusive, todo puede quedar inscrito dentro de cualquiera de estos símbolos

!
[ ]
{ }
( )
< >

O sea, nuestro pequeño update dinámico quedaría

var_sql := 'update '|| var_tabla ||' set campo1 = q'[ 'valor literal' ]';

Acaso no se ve más sencillo , mmmmm , claro que sí !!!!

by Ligarius
17.05.10. 14:33:15. 329 words, 3340 views. Categories: Sql*Plus , Leave a comment »Send a trackback »

Oracle 11g : Exámen 1z0-054 Performance Tuning



Hola...

Me encuentro preparando un nuevo exámen de certificación , el código es el siguiente

1z0-054 : Oracle 11g Performance Tuning

El cual forma parte de la malla de certificación de Oracle11g



El detalle del exámen..



Así que cuando finalice, les cuento el puntaje obtenido (ojalá me vaya bien)


by Ligarius
10.05.10. 14:40:23. 54 words, 3284 views. Categories: Oracle 11g, Certificaciones , 1 comment »Send a trackback »