ODC admite la creación visual de funciones. Este tema describe cómo crear una función con ODC.
Descripción general
Una función es un subprograma definido en una base de datos. Las funciones se invocan mediante sentencias SQL integradas. Si las funciones integradas no cubren sus requisitos de negocio, OceanBase Developer Center (ODC) le permite crear funciones propias. Estas funciones personalizadas facilitan cálculos y operaciones especiales, además de reducir la redundancia del código para mejorar su legibilidad.
Una función es un objeto procedimental similar a un procedimiento almacenado dentro de una base de datos. Al igual que este último, consiste en un fragmento de código con sentencias SQL y procedimentales. Tanto las aplicaciones como otras sentencias SQL pueden invocarla.
Diferencias entre una función definida por el usuario y un procedimiento almacenado:
La función devuelve un solo resultado, por lo que resulta adecuada para procesamientos de datos que generan un único valor. El procedimiento almacenado puede devolver cero o varios resultados, lo cual es útil para inserciones y actualizaciones masivas.
Una función se invoca con una sentencia
SELECT, mientras que un procedimiento almacenado requiere la sentenciaCALL.

Como se muestra en la figura anterior, la creación de una función consta de los siguientes seis pasos:
Procedimiento
En el siguiente ejemplo se crea la función function_emp desde la consola de ODC. Su propósito es obtener el nombre de un empleado a partir de su identificador en una tabla de empleados. Esta función incluye el parámetro id, de tipo INT. A continuación se detalla el procedimiento:
Paso 1: Especificar el nombre de la función
Inicie sesión en ODC y haga clic en el nombre de una conexión para acceder a la página de gestión correspondiente. En el panel de navegación izquierdo, haga clic en Function para consultar la lista de funciones. Para crear una nueva, haga clic en el signo + ubicado en la esquina superior derecha de dicha lista o seleccione Create en la barra de navegación superior.

Paso 2: Especificar el tipo de dato del valor de retorno
Para más información sobre los tipos de datos, consulte OceanBase Database Developer Guide.
Paso 3: Especificar los parámetros
-
Los parámetros definen la información que se pasa a la función durante su invocación.
En modo Oracle, especifique los siguientes campos: Name, Mode, Type y Default Value.
En modo MySQL, especifique los siguientes campos: Name, Type y Length.
-
Existen tres métodos para especificar los parámetros.
Método
Descripción
Uso de la barra de herramientas de acceso rápido
Esta barra permite agregar, eliminar y reordenar los parámetros hacia arriba o hacia abajo.
Hacer clic en el número de fila
Al hacer clic en un número de fila, esta se selecciona y aparece la barra de herramientas de acceso rápido. Desde ahí puede eliminarla o moverla hacia arriba o hacia abajo.
También puede seleccionar la fila mediante su número y arrastrarla para ajustar el orden.
Hacer clic con el botón derecho
Copiar una fila o moverla hacia abajo: arrastre el puntero para seleccionar la fila, haga clic con el botón derecho y elija Copy o Move Down en el menú contextual.
Copiar una celda: selecciónela, haga clic con el botón derecho y elija Copy en el menú contextual.
-
Es necesario especificar el modo de los parámetros.
La configuración del modo de parámetro no está disponible en modo MySQL. El modo Oracle admite los siguientes modos: IN, OUT e INOUT.
Modo
Descripción
IN
Representa un parámetro de entrada. Cuando se invoca la función, este valor se le transfiere y se utiliza durante su ejecución.
OUT
Representa un parámetro de salida. Durante la invocación, su valor original se ignora y se pasa un valor vacío a la función. Dentro del cuerpo de la función, este parámetro se puede modificar. El resultado modificado se devuelve al argumento que representa dicho parámetro.
INOUT
Representa un parámetro de entrada y salida, ya que cumple ambas funciones simultáneamente.
NotaEn modo Oracle, tanto las funciones como los procedimientos almacenados admiten los modos IN, OUT e INOUT. En modo MySQL, las funciones solo admiten el modo IN, mientras que los procedimientos almacenados admiten IN, OUT e INOUT.
Paso 4: Confirmar la creación de la función
Haga clic en OK para acceder a la página Create Function.
Paso 5: Editar la información de la función

Edite la sentencia de la función en la página Create Function.
Además, la barra de herramientas de la página de edición incluye los siguientes botones.
|
Botón |
Descripción |
|
Format |
Haga clic en este botón para aplicar formato —como sangría, saltos de línea y resaltado de palabras clave— a las sentencias SQL seleccionadas o a todas las de la ventana SQL actual. |
|
Find and Replace |
Haga clic en este botón e introduzca texto en el campo de búsqueda para localizar contenido específico. Use el campo de reemplazo para sustituir el texto encontrado. |
|
Undo |
Haga clic en este botón para deshacer la última operación. |
|
Redo |
Haga clic en este botón para revertir una operación de Undo. |
|
Case Sensitivity |
El sistema ofrece tres opciones de capitalización: All Caps, All Lowercase y Capitalize First Letter. Haga clic en la opción deseada para convertir las sentencias seleccionadas del script al formato correspondiente. |
|
Indent |
Permite agregar sangrías o eliminar sangrías de las sentencias seleccionadas. |
|
Comments |
Haga clic en Add Comments para convertir las sentencias seleccionadas en comentarios, o en Delete Comment para transformar los comentarios nuevamente en sentencias SQL. |
|
IN Value Conversion |
Convierte un formato como A B al formato ('A','B'). |
Las sentencias SQL de la función creada se editan directamente en la página Create Function. Sintaxis:
CREATE FUNCTION < function name > ([ <parameter 1> <type 1> [ , <parameter 2> <type 2>] ] …)
RETURNS < type >
< function body >
Parámetros:
Parámetro | Descripción |
<function name> | El nombre de la función definida por el usuario. Importante El nombre de una función definida por el usuario no puede coincidir con el de un procedimiento almacenado. |
<parameter><type> | Los parámetros de la función. Este campo solo incluye el nombre y el tipo. No es posible especificar las palabras clave IN, OUT ni INOUT. |
RETURNS<type> | El tipo de dato del valor de retorno. Importante La sentencia SELECT dentro de una instrucción RETURN VALUE devuelve únicamente un valor de una sola fila y una sola columna. |
<function body> | El cuerpo de la función definida por el usuario. Debe contener la sentencia |
Ejemplo:
CREATE FUNCTION `function_emp` ( `id` int(45)) RETURNS VARCHAR(300)
-- The start of the function body.
BEGIN
-- Declare a variable.
DECLARE
a VARCHAR(300);
-- Assign a value to the variable.
SELECT
name INTO a
FROM
employee
WHERE
emp_no = id;
-- Specify the return value.
RETURN a;
-- The end of the function body.
END
Paso 6: Finalizar la creación de la función.
Haga clic en Create en la esquina superior derecha para crear la función. Una vez creada, puede invocarla con la palabra clave SELECT, de la misma forma que lo haría con una función integrada.
Para gestionar una función, haga clic con el botón derecho en su nombre dentro del panel de navegación izquierdo y seleccione la operación requerida en el menú contextual. Este menú ofrece las siguientes opciones: View, Create, Edit, Compile, Debug, Run, Download, Delete y Refresh.
Para más información, consulte Manage functions.
Sintaxis:
SELECT <function name> ([<parameter> [,...]])
Ejemplo:
SELECT function_emp(2);
-
Modo MySQL

-
Modo Oracle
ImportanteEn modo Oracle, si una función definida por el usuario contiene un parámetro OUT, debe invocarla mediante la sentencia
CALL.Un ícono amarillo
en la lista de funciones indica un error o una alerta.