Función PL / SQL

Función PL / SQL

I. Introducción

ORACLE puede almacenar programas PL / SQL en la base de datos y ejecutarlos en cualquier lugar . Esto se denomina función o procedimiento almacenado . Los procedimientos y funciones se denominan colectivamente subrutinas PL / SQL y se denominan bloques PL / SQL , que se almacenan en la base de datos e intercambian información con sus llamadores a través de parámetros de entrada, salida o entrada y salida. La única diferencia entre un procedimiento y una función es que una función siempre devuelve datos a la persona que llama , mientras que un procedimiento no devuelve datos .

Dos crean y llaman a la función

1 Cree una función incrustada
(1) La sintaxis es la siguiente:

Descripción:

  1. OR REPLACE es opcional. Con él, puede crear una nueva función o reemplazar una función con el mismo nombre sin conflicto
  2. Después del nombre de la función hay una lista de parámetros opcionales, que contiene etiquetas IN, OUT o IN OUT. Los parámetros están separados por comas. La etiqueta de parámetro IN indica que el valor pasado a la función no cambia durante la ejecución de la función ; el La etiqueta OUT indica una El valor se calcula en la función y se pasa a la declaración de llamada a través del parámetro ; la marca IN OUT indica que el valor pasado a la función se puede cambiar y pasar a la declaración de llamada . Si la marca se omite, la El parámetro está implícitamente IN.
  3. Debido a que la función necesita devolver un valor, RETURN contiene el tipo de datos del resultado devuelto
CREATE OR REPLACE ] FUNCTION function_name
	[ (argment [ {
    
    IN | IN OUT }]Type,
	 argment [ {
    
     IN | OUT | IN OUT } ] 	Type ]
	[ AUTHID DEFINER | CURRENT_USERR ]
	RETURN return_type
{
    
    IS | AS }
	<类型 变量的说明>
BEGIN
	FUNCTION_body
EXCEPTION
	其它语句
END

(2) Caso
① Función sin parámetros
Inserte la descripción de la imagen aquí
Ejecute esta función:
Inserte la descripción de la imagen aquí
② Obtenga la suma del salario de un determinado departamento
Inserte la descripción de la imagen aquí
Ejecute esta función:
Inserte la descripción de la imagen aquí

2 La llamada de la función incorporada Los
parámetros definidos cuando se declara la función se denominan parámetros formales, y los parámetros pasados ​​a la función cuando se llama a la aplicación se denominan parámetros reales. Cuando un programa de aplicación llama a una función, puede utilizar los siguientes tres métodos para pasar parámetros a la función:
① El primer formato de paso de parámetros se llama notación posicional y el formato es

argument_value1[,argum ent_value2 …]

Caso: cálculo de una suma del departamento de salario
Inserte la descripción de la imagen aquí
② El segundo formato se denomina formato de representación de parámetro de nombre pasado
en el que: argumento está en forma de parámetros, será el mismo en forma de nombres de parámetro a definir declaración de función . El parámetro es el parámetro real. En este formato, el parámetro de situación y el parámetro real aparecen en pares, y la relación entre ellos se determina de forma única, por lo que el orden de los parámetros se puede organizar de forma arbitraria.

argument => parameter [,]

Caso: Calcular la suma de salarios en un departamento determinado
Inserte la descripción de la imagen aquí
③ El tercer formato de transferencia de parámetros se llama notación mixta,
es decir, cuando se llama a una función, tanto la notación de posición como la notación de nombre se utilizan para pasar parámetros a la función
. Con este método de paso de parámetros, para que represente la posición, el método de parámetro debe pasarse delante del nombre del parámetro que indica la ley aprobada . En otras palabras, no importa cuántos parámetros tenga la función, siempre que un parámetro use notación de nombre, todos los parámetros subsiguientes deben usar notación de nombre.
Caso: cálculo de la suma de los salarios en un departamento determinado
Inserte la descripción de la imagen aquí
Independientemente del método de transferencia de parámetros que se adopte, solo hay dos métodos para la transferencia de datos entre los parámetros reales y los parámetros formales: método de transferencia de dirección y método de transferencia de valor . El llamado método de transferencia de dirección significa que cuando se llama a una función, el puntero de dirección del parámetro real se pasa al parámetro formal para que el parámetro formal y el parámetro real apunten a la misma área en la memoria , a fin de realizar la transferencia de datos de parámetros. Este método también se denomina método de referencia, es decir, los parámetros formales se refieren a los datos de los parámetros reales. Todos los parámetros de entrada se transfieren mediante el método de dirección
El método de transferencia de valor se refiere a copiar los datos reales del parámetro al parámetro formal en lugar de pasar la dirección del parámetro real. De forma predeterminada, tanto los parámetros de salida como los de entrada y salida adoptan el método de paso de valores . Cuando se llama a la función, ORACLE copia los datos de los parámetros reales a los parámetros de entrada y salida, y cuando la función sale de la operación normal, copia los parámetros formales de salida y los datos de los parámetros formales de entrada y salida a las variables de parámetros reales.

3 Valores predeterminados de los parámetros
Al declarar parámetros de función en la instrucción CREATE OR REPLACE FUNCTION, puede utilizar la palabra clave DEFAULT para especificar valores predeterminados para los parámetros de entrada.
Inserte la descripción de la imagen aquí
Después de que se crea la función con el valor predeterminado, cuando se llama a la función, si el valor real del parámetro no se proporciona para el parámetro con el valor predeterminado, la función
utilizará el valor predeterminado del parámetro. Pero cuando la persona que llama proporciona parámetros reales para los parámetros predeterminados, la función utilizará los valores reales de los parámetros. Al crear una función, solo puede establecer valores predeterminados para los parámetros de entrada, pero no para los parámetros de entrada y salida .
Inserte la descripción de la imagen aquí

Tres funciones de eliminación

Puede usar el comando DROP FUNCTION para eliminar funciones innecesarias, la sintaxis es la siguiente:

DROP FUNCTION [user.]Function_name;

Supongo que te gusta

Origin blog.csdn.net/hcyxsh/article/details/115000183
Recomendado
Clasificación