Les types SQL et les types PL

Oracle peut être interroger gràce à deux langages : le SQL et le PL qui est une couche supérieure du SQL. On parle donc de PL/SQL.

Les différents types de données sont présents dans les deux langages mais peuvent parfois amenés quelques erreurs.

L'une des erreurs les plus courantes provient du fait que le type varchar2 en PL peut contenir jusqu'à 32767 caractères tandis que le type varchar2 SQL est limité à 4000 caractères. Il faut alors passer par d'autres types.

Voici les différentes manières d'exécuter du code par Oracle :
- requête SQL (via un client oracle quelconque : sqlplus, API oracle ou accès ODBC/JDBC)
- bloc PL/SQL dit anonyme (via un client Oracle le supportant : sqlplus, API oracle ou accès ODBC/JDBC)
- code PL/SQL via fonctions ou procédures stockées (code pré-compilé en base) qui sera appelé dans un autre bloc PL ou une instruction SQL (CALL).

Il n'est pas possible d'appeler un bloc PL à partir d'une requête SQL, par contre le SQL peut être appelé par du code PL.
Une particularité du SQL au sein de PL lorsque la requête doit être effectuée à l'intérieur de la transaction, on parle de SQL dynamique et (à partir de 8i) on peut utiliser l'ordre EXECUTE IMMEDIATE (DBMS_SQL pour toutes les versions).
Voir un exemple ici.




Vous n'avez pas trouver réponse à votre question ? Préciser votre recherche :

Catégories