Maison > Article > base de données > Quel est le curseur de la procédure stockée Oracle ?
Dans Oracle, un curseur est un espace de travail mémoire de SQL, défini sous la forme d'une variable par le système ou l'utilisateur, utilisé pour stocker temporairement des blocs de données extraits de la base de données après le transfert des données de la base de données vers la variable curseur ; , l'application décompose ensuite les données requises à partir de la variable du curseur et les traite.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.
1. J'ai vu un paragraphe qui explique très bien le concept, comme suit :
Un curseur est un espace mémoire de travail de SQL, défini sous la forme d'une variable par le système ou l'utilisateur. Le but d'un curseur est de stocker temporairement des blocs de données extraits de la base de données. Dans certains cas, il est nécessaire de transférer les données des tables stockées sur disque vers la mémoire de l'ordinateur pour les traiter, et enfin d'afficher les résultats du traitement ou de les réécrire dans la base de données. De cette façon, la vitesse de traitement des données sera améliorée, sinon l'échange fréquent de données sur disque réduira l'efficacité.
Il existe deux types de curseurs : les curseurs explicites et les curseurs implicites. L'instruction de requête SELECT...INTO... utilisée dans le programme susmentionné ne peut extraire qu'une seule ligne de données de la base de données à la fois. Pour cette forme de requête et d'opération DML, le système utilisera un curseur implicite. Mais si vous souhaitez extraire plusieurs lignes de données, le programmeur doit définir un curseur explicite et le traiter via des instructions liées au curseur. Un curseur explicite correspond à une instruction SELECT qui renvoie plusieurs lignes et colonnes.
Une fois le curseur ouvert, les données sont transférées de la base de données vers la variable du curseur, puis l'application décompose les données requises de la variable du curseur et les traite. Dans nos opérations d'insertion, de mise à jour, de suppression et de sélection de valeur dans une variable, nous utilisons des curseurs implicites.
Propriétés implicites du curseur Signification du type de valeur de retour :
SQL%ROWCOUNT Type entier Représente le nombre de lignes de données exécutées avec succès par l'instruction DML
SQL%FOUND La valeur booléenne TRUE représente l'insertion, la suppression, la mise à jour ou une seule ligne L'opération de requête est réussie
SQL%NOTFOUND Le type booléen est opposé à la valeur de retour de l'attribut SQL%FOUND
SQL%ISOPEN Type booléen True lors de l'exécution DML, false après la fin
2. Curseur implicite :
create or replace procedure prc_example (epo in number) as BEGIN UPDATE emp SET sal=sal+100 WHERE empno=epo; IF SQL%FOUND THEN DBMS_OUTPUT.PUT_LINE('成功修改雇员工资!'); COMMIT; ELSE DBMS_OUTPUT.PUT_LINE('修改雇员工资失败!'); END IF; END; declare e_number number; begin e_number:=7788; prc_example(e_number); end;
3. Afficher le curseur :
Utilisez le curseur pour interroger tous les noms d'employés portant le numéro 10
create or replace procedure prc_example is begin declare cursor emp_sor is select ename,sal from emp where deptno=10; cname emp.ename%type; csal emp.sal%type; begin open emp_sor; loop fetch emp_sor into cname,csal; --取游标的值给变量。 dbms_output.put_line('ename:'||cname); exit when emp_sor%notfound; end loop; close emp_sor; end; end;
Tutoriel recommandé : "Tutoriel vidéo Oracle"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!