Red de conocimiento del abogados - Ley de patentes - Sintaxis de procedimiento almacenado

Sintaxis de procedimiento almacenado

El propósito de los procedimientos y funciones almacenados es ejecutar de manera reproducible una colección de declaraciones SQL que operan la base de datos.

La diferencia está en escribir y llamar.

Escritura: La lista de parámetros de un procedimiento almacenado puede tener parámetros de entrada, parámetros de salida y parámetros que pueden ser entrada y salida;

La lista de parámetros de una función solo tiene parámetros de entrada y tiene return lt; tipo de valor de retorno, sin especificación de longitud gt;.

Valor de retorno:

El valor de retorno de un procedimiento almacenado puede tener múltiples valores,

El valor de retorno de una función tiene solo un valor.

En términos de métodos de llamada:

Los métodos de llamada de procedimientos almacenados son:

1), exec lt; nombre del proceso gt;;

2), ejecute lt; nombre del proceso gt;;

3), llame directamente en el bloque de instrucciones PL/SQL.

Los métodos de llamada a funciones son:

Se llama directamente en el bloque de instrucciones PL/SQL.

Se divide específicamente en:

----Llamar a FUNCIÓN add_tres_números

----1 Llamar a la función usando representación de posición

BEGIN

dbms_output.put_line(add_tres_numbers(2, 4, 5));

END

----2.

COMENZAR

dbms_output.put_line(add_tres_números(b=gt; 3, a=gt; 4, c=gt; 2));

FIN;

----3. Mezcle notación posicional y notación con nombre para llamar a funciones

BEGIN

dbms_output.put_line(add_tres_numbers(3, b=gt; 4). , c=gt; 2));

END;

----4. Notación de exclusión

BEGIN

dbms_output. put_line(add_tres_numbers(12,c=gt;2));

END;

----5. Representación de llamadas SQL: representación mixta

SELECCIONE add_tres_números(3, b=gt; 4, c=gt; 2) FROM DUAL;

----1. Esta función acepta 3 parámetros opcionales y devuelve 3 números y

CREAR O REEMPLAZAR FUNCIÓN add_tres_números

(

a NÚMERO:=0, b NÚMERO:=0, c NÚMERO:=0

)

EL NÚMERO DEVUELTO ES

COMIENZO

RETORNO a b c

FIN

PROCEDIMIENTO ALMACENADO:

Sintaxis básica:

crear procedimiento lt; nombre del procedimiento gt; (lt; lista de parámetros, ignorar gt si no hay parámetros;)

como|es

Declaración de variable , inicialización

comenzar

Procesamiento comercial, código lógico

excepción

Captura de excepciones, procesamiento de tolerancia a fallas

end lt; nombre del procedimiento gt;;

Parámetro: lt; nombre del parámetro gt; in|out|in out lt; sin especificación de longitud, como: v_name varchar2

in: parámetros de entrada

out: parámetros de salida

in out: parámetros de entrada y salida

Nota: as|is significa como o es

Sintaxis de llamada:

1), exec lt; nombre del proceso gt;;

2), ejecutar lt; nombre del proceso gt;; 3), llámelo directamente en el bloque de instrucciones PL/SQL.

Ejemplo:

crear o reemplazar el procedimiento up_wap(v_param1 in out varchar2, v_param2 in out varchar2)

es

v_temp varchar2( 20);

begin

dbms_output.put_line('Parámetro 1 antes del intercambio: '||v_param1||' Parámetro 2: '||v_param2);

v_temp:=v_param1;

v_param1:=v_param2;

v_param2:=v_temp;

dbms_output.put_line('Parámetro 1 después del intercambio:'|| v_param1||' Parámetro 2: '||v_param2);

excepción

cuando otros entonces dbms_output.put_line('¡Hay un error cuando se ejecuta el procedimiento up_wap!');

end up_wap;

/

-- Llamar al procedimiento almacenado

declarar

v_param1 varchar2(20): ='param1';

v_param2 varchar2(20):='param2';

comenzar

up_wap(v_param1 =gt; v_param1, v_param2 =gt; v_param2);

end;

/

Función personalizada (función)

Sintaxis básica:

crear función lt; nombre de la función gt; (lt; lista de parámetros, ignorar gt cuando no hay parámetros;)

devuelve lt; tipo de valor de retorno, sin descripción de longitud

como|es

Declaración de variable, inicialización

comenzar

Procesamiento comercial, código lógico

return lt; valor devuelto gt;; p>excepción

Captura de excepciones, procesamiento tolerante a fallas

end lt; nombre de la función gt;; >Nota: Sólo el tipo de parámetros de entrada.

La transferencia de parámetros (parámetros de entrada y parámetros de salida) en procedimientos almacenados y funciones personalizadas no puede usar la coincidencia de tipo o tipo de fila, y el valor nulo no se puede usar, pero los procedimientos almacenados pueden devolver valores nulos.

Ejemplo:

crear función uf_select_name_by_id_test(v_id en número)

devolver varchar2

es

v_name t_test .t_nametype;

comenzar

selecciona t_name en v_name de t_test donde t_id=v_id;

devuelve v_name;

excepción

cuando otros entonces dbms_output.put_line('error');

end uf_select_name_by_id_test;

/

seleccione uf_select_name_by_id_test(1) nombre de dual; -- seleccionar llamada

declarar --pl/sql llamada de bloque de sentencia

v_name varchar2(20);

comenzar

v_name: =uf_select_name_by_id_test(1);

dbms_output.put_line('name = '||v_name);

end;

/