Maison > base de données > Oracle > le corps du texte

Que comprend la structure de base des procédures stockées Oracle ?

青灯夜游
Libérer: 2022-03-02 16:52:15
original
3934 Les gens l'ont consulté

La structure de la procédure stockée Oracle contient trois parties : 1. Déclaration du processus ; 2. Partie du processus d'exécution ; 3. Exception de procédure stockée si vous souhaitez améliorer la tolérance aux pannes du script et la commodité de. débogage, écriture des exceptions, gestion.

Que comprend la structure de base des procédures stockées Oracle ?

L'environnement d'exploitation de ce tutoriel : système Windows 7, version Oracle 11g, ordinateur Dell G3.

Qu'est-ce qu'une procédure stockée

Procédure stockée : l'Encyclopédie Baidu l'explique ainsi, une procédure stockée (Stored Procedure) est un ensemble d'instructions SQL dans un grand système de base de données pour remplir des fonctions spécifiques, stockées dans la base de données. , il n'est pas nécessaire de recompiler lors d'un nouvel appel après la première compilation. L'utilisateur appelle la procédure stockée en spécifiant le nom de la procédure stockée et en donnant des paramètres (si la procédure stockée a des paramètres).

Pour faire simple, il s'agit d'une instruction SQL qui fait une chose spécifiquement.

Il peut être appelé par la base de données elle-même ou par un programme Java.

Les procédures stockées sont des procédures dans la base de données Oracle.

Structure de la procédure stockée

(1) Structure de base

La procédure stockée Oracle contient trois parties : la déclaration du processus, la partie du processus d'exécution, l'exception de la procédure stockée (inscriptible ou non, pour améliorer la tolérance aux pannes du script et Pour faciliter le débogage, écrivez la gestion des exceptions)

(2) Procédure stockée sans paramètres

/**
name_procedure就是自己自定义的存储过程名
*/
create or replace procedure name_procedure AS/IS
	变量名1  数据类型;
	变量名2  数据类型;
BEGIN
	--要处理的业务逻辑
	EXCEPTION    --存储过程异常
END name_procedure;
Copier après la connexion

(3) Procédure stockée avec paramètres

Procédure stockée avec paramètres ordinaires

/*
age 类型为number 初始化为20;
*/
CREATE OR REPLACE PROCEDURE name_procedure (param1 TYPE)
AS/IS
name varchar(20);
age number :=20;
BEGIN
  --业务处理.....
END ;
Copier après la connexion

Procédure stockée avec paramètres et Perform. assignation

CREATE OR REPLACE PROCEDURE 存储过程名称(
       s_no in varchar,
       s_name out varchar,
       s_age number) AS
total NUMBER := 0;
BEGIN
  SELECT COUNT(1) INTO total FROM student s WHERE s.age=s_age;
  dbms_output.put_line('符合该年龄的学生有'||total||'人');
  EXCEPTION
    WHEN too_many_rows THEN 
    DBMS_OUTPUT.PUT_LINE('返回值多于1行'); 
END
Copier après la connexion

Le paramètre IN représente le paramètre d'entrée et est le mode par défaut du paramètre.

  • OUT représente le paramètre de valeur de retour et le type peut utiliser n'importe quel type légal dans Oracle.

  • Les paramètres définis en mode OUT ne peuvent se voir attribuer une valeur qu'à l'intérieur du corps du processus, ce qui signifie que le paramètre peut renvoyer une certaine valeur au processus qui l'a appelé

  • IN OUT signifie que le paramètre. peut transmettre une valeur au processus, ou il peut transmettre une certaine valeur

Ligne 7 : Instruction de requête, en utilisant le paramètre s_age comme condition de filtre, le mot-clé INTO et en attribuant les résultats trouvés à la variable totale.

Ligne 8 : Résultats de la requête de sortie, "||" est utilisé pour connecter des chaînes dans la base de données

Ligne 9-11 : Effectuer la gestion des exceptions

Syntaxe de la procédure stockée

Opérateur (1)

Que comprend la structure de base des procédures stockées Oracle ?

(2) Instruction SELECT INTO STATEMENT

  • Attribuer les résultats de la requête à une ou plusieurs variables

Exigence : connaître le nom, l'âge et le nom de l'élève avec un score de 100 points . Lieu de naissance

CREATE OR REPLACE PROCEDURE DEMO_CDD1 IS
s_name VARCHAR2;   --学生名称
s_age NUMBER;      --学生年龄
s_address VARCHAR2; --学生籍贯
BEGIN
  --给单个变量赋值
  SELECT student_address INTO s_address
  FROM student where student_grade=100;
   --给多个变量赋值
  SELECT student_name,student_age INTO s_name,s_age
  FROM student where student_grade=100;
  --输出成绩为100分的那个学生信息
  dbms_output.put_line('姓名:'||s_name||',年龄:'||s_age||',籍贯:'||s_address);
END
Copier après la connexion

(3) Select Statement

//if 后面一定要添加THEN 相当于Java中的 大括号
IF s_sex=1 THEN
  dbms_output.put_line('这个学生是男生');
ELSE IF THEN
  dbms_output.put_line('这个学生是女生');
ELSE
  dbms_output.put_line('这个学生性别错误');
END IF
Copier après la connexion

(4) Loop Statement

a.Basic loop

LOOP
  IF 表达式 THEN
    EXIT;
  END IF
END LOOP;
Copier après la connexion

b.while loop

WHILE 表达式 LOOP
  dbms_output.put_line('haha');
END LOOP;
Copier après la connexion

c.for loop

//a 1 到 20 范围
FOR a in 10 .. 20 LOOP
  dbms_output.put_line('value of a: ' || a);
END LOOP;
Copier après la connexion

Tutoriel recommandé : "Tutoriel 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal