Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog

LAMI DBA

hello

Il y a peu, nous vous avons proposé un article  (cliquez ici )sur l'injection de hint dans du sql via dbms_sqldiag_internal.i_create_patch.
Lorsque j'ai commencé mon article, j'ai été confronté à un petit soucis. Cependant je l'avais utilisé i y a quelques mois (mais certainement pas sur une 12c), et j'avais repris également été me documenter sur quelques très bon blogs.
Et donc naturellement ne voulant pas faire dans l'originalité, j'avais repris cette syntaxe qui avait déjà fonctionné pour moi et que je retrouvais un peu partout dans différents articles.

SQL>

SQL> begin

   dbms_sqldiag_internal.i_create_patch(sql_id=>'select * from lamidba', hint_text=>'PARALLEL(@"SEL$1" "LAMIDBA"@"SEL$1" 2)',creator=>'SYS', name=>'SQL_Patch_1');

end;

/


Et la.... Paf !

ERROR at line 2:

ORA-06550: line 2, column 4:

PLS-00306: wrong number or types of arguments in call to 'I_CREATE_PATCH'

ORA-06550: line 2, column 4:

PL/SQL: Statement ignored



SQL>


forcement, j'ai commencé par me dire qu' à force de lire une ligne sur deux, et ne suis pas le seul (N'est ce pas Monsieur Mickael ;)) j'avais du raté quelque chose... Après plusieurs tests infructueux... je me dis (comme souvent) que j'aurai du commencé par aller jeter un oeil sur Oracle Support !
Bien m'en a pris puisque je suis tombé sur la note  1931944.1
D'ou la syntaxe utilisée dans l'article précédent.

SQL>

SQL>  variable x varchar2(100);

 exec :x:=dbms_sqldiag_internal.i_create_patch(sql_text=>'select * from lamidba', hint_text=>'PARALLEL(@"SEL$1" "LAMIDBA"@"SEL$1" 2)',creator=>'SYS', name=>'SQL_Patch_1');

 SQL>

PL/SQL procedure successfully completed.

SQL>


Et pourtant sur de nombreux blogs, je continue de voir l'ancienne syntaxe alors qu'il est question de version 12c..
Pour mon article, j'utilisais une 12c R2... y a t'il eu un changement entre les deux versions.. à l'occasion je ferai le test sur une 12c R1 et posterai le résultat en commentaire.
Autre possibilité... je suis passé à coté de quelques chose... N'hesitez pas à me le faire savoir.

Enjoy.

 

commentaires

Articles autour des SGBD Oracle, SQL Server & PostgreSQL

A propos de LAMI-DBA

Le Blog LAMI-DBA est la fusion de deux blogs existants, celui de LAurent (laodba) et celui de MIckael (dbafaq), deux DBA passionnés des sgbd, et particulièrement d'Oracle.

 

Laurent, 47 ans, Expert Oracle & MS SQL Server, Team Leader, dit "Le Taz", Certifié Expert RAC 11G, Exadata Implementation Specialist, OCA 11G, 

Profil Linkdin

 

 

 

Mickael, 37 ans, Expert Oracle, dit "Batman", Certifié Expert RAC 11G, OCP 11G, OCP 10G,

Profil Linkdin      

 

Hébergé par Overblog