ODC admite la creación visual de procedimientos almacenados. En este tema se describe cómo crear un procedimiento almacenado con ODC.
Descripción general
Un procedimiento almacenado es un conjunto de una o más instrucciones. Para ejecutar una serie de operaciones complejas en una base de datos, puede usar un procedimiento almacenado que encapsule dichas operaciones en un bloque de código reutilizable dentro de la base de datos. Esto ayuda a los desarrolladores a reducir su carga de trabajo.
En OceanBase Database, un procedimiento almacenado es un conjunto de instrucciones SQL que implementan una función específica. Después de compilar y almacenar un procedimiento en la base de datos, puede especificar su nombre y los parámetros obligatorios para llamarlo y acelerar así la ejecución de las instrucciones SQL.
Un procedimiento almacenado puede contener parámetros y valores de retorno.
Diferencias entre un procedimiento almacenado y una función
El valor de retorno de una función es un resultado específico, mientras que el de un procedimiento almacenado solo indica si la ejecución fue exitosa.
Puede llamar a una función mediante una instrucción
SELECT. Para llamar a un procedimiento almacenado, utilice una instrucciónCALL.
Ventajas de los procedimientos almacenados
Mejoran la versatilidad y portabilidad de la aplicación: después de crear un procedimiento almacenado, un programa puede llamarlo de forma repetida sin necesidad de reescribir sus instrucciones SQL. Además, los procedimientos almacenados se pueden modificar sin afectar el código fuente del programa, lo que mejora la portabilidad de este último.
Aceleran la ejecución de SQL: si una operación implica una gran cantidad de instrucciones SQL o la ejecución repetida de las mismas instrucciones, puede compilar el código en un procedimiento almacenado y ejecutarlo. Este método es más rápido que ejecutar las instrucciones por separado.
Reducen la carga de trabajo del servidor: si se llama a una instrucción SQL a la vez para operar sobre los objetos de la base de datos, se transmite un gran volumen de instrucciones. Con un procedimiento almacenado equivalente, solo se envía el comando para llamarlo, lo que reduce la carga de la red.

Como se muestra en la figura anterior, puede crear un procedimiento almacenado en los siguientes cinco pasos:
En el siguiente ejemplo, se crea un procedimiento almacenado llamado proc_total en la consola de ODC para calcular presupuestos departamentales. El procedimiento contiene dos parámetros de entrada de tipo INT, budget_r y budget_s, y calcula la suma de ambos.
Los datos que se utilizan en este tema son ejemplos. Puede sustituirlos por datos reales según sea necesario.
Procedimiento
Paso 1: Especifique el nombre del procedimiento almacenado.
Inicie sesión en la consola de ODC y haga clic en el nombre de la conexión deseada para ir a la página de gestión de conexiones correspondiente. Haga clic en Stored Procedure en el panel de navegación izquierdo para obtener la lista de procedimientos almacenados. Para crear uno nuevo, haga clic en + en la esquina superior derecha de la lista Stored Procedure o seleccione Create > Stored Procedure en la barra de navegación superior.
En el cuadro de diálogo Create Stored Procedure, introduzca un nombre para el procedimiento almacenado.

Paso 2: Especifique los parámetros.
-
Los parámetros definen la información que se pasa a una función cuando se le llama.
En modo Oracle, especifique los siguientes campos: Name, Mode, Type y Default Value.
En modo MySQL, especifique Name, Mode, Type y Length.
-
Puede especificar los parámetros mediante uno de los tres métodos siguientes.
Método
Descripción
Usar la barra de herramientas de acceso rápido
En la barra de herramientas de acceso rápido, puede agregar, eliminar y mover parámetros hacia arriba o hacia abajo.
Hacer clic en el número de fila
Haga clic en un número de fila para seleccionarla y mostrar la barra de herramientas de acceso rápido, desde donde podrá eliminarla o moverla hacia arriba o hacia abajo.
Haga clic en un número de fila para seleccionarla y luego arrástrela para ajustar su orden.
Hacer clic derecho
Copiar una fila o moverla hacia abajo: arrastre el puntero para seleccionar una fila, haga clic derecho sobre ella y seleccione Copy o Move Down en el menú contextual que aparece.
Copiar una celda: seleccione una celda, haga clic derecho sobre ella y seleccione Copy en el menú contextual que aparece.
NotaDespués de copiar una fila, puede seleccionar otra y pegar los datos copiados con las teclas de acceso rápido Command + V / Ctrl + V.
-
Debe especificar el modo de los parámetros.
OceanBase Database, tanto en modo MySQL como en modo Oracle, admite los siguientes modos de parámetro: IN, OUT e INOUT.
CREATE PROCEDURE proc_name ([[IN |OUT |INOUT ] parameter_name parameter_type...])-
Parámetros
Parámetro
Tipo
IN
Indica un parámetro de entrada.
Cuando se llama a un procedimiento almacenado, el parámetro de entrada se le pasa y se utiliza durante su ejecución. Por lo general, estos parámetros solo sirven para pasar valores y no se modifican ni se devuelven durante la llamada.
OUT
Indica un parámetro de salida.
Cuando se llama a un procedimiento almacenado, el valor de un parámetro de salida se ignora y se le pasa un valor vacío. Dicho valor se modifica durante la ejecución del procedimiento. Una vez finalizada, el valor modificado se asigna al parámetro de salida. Normalmente, estos parámetros se usan para obtener los resultados de ejecución de un procedimiento almacenado y permiten modificar y devolver valores durante la llamada.
INOUT
Indica un parámetro de entrada y salida.
Un parámetro de entrada y salida funciona simultáneamente como parámetro de entrada y de salida.
-
Configuración de parámetros
Propiedad
Obligatorio
Predeterminado
Modo
Name
Sí
Vacío
Oracle/MySQL
Mode
Sí
IN
Oracle/MySQL
Type
Sí
VARCHAR
Oracle/MySQL
Length
Sí
45
MySQL
Default value
No
Vacío
Oracle
-
Paso 3: Compruebe los parámetros del procedimiento almacenado.
Haga clic en OK para ir a la página Create Stored Procedure.
Paso 4: Edite el procedimiento almacenado.

Edite las instrucciones en la página Create Stored Procedure.
Además, la barra de herramientas de la página de edición ofrece los siguientes botones.
|
Botón |
Descripción |
|
Format |
Haga clic en este botón para aplicar formato (como sangría, salto de línea y resaltado de palabras clave) a las instrucciones 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. Luego, escriba texto en el campo de reemplazo para sustituir el contenido 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 admite tres opciones de capitalización: All Caps, All Lowercase y Capitalize First Letter. Haga clic en la opción correspondiente para convertir las instrucciones seleccionadas del script al formato de capitalización deseado. |
|
Indent |
Permite agregar sangrías o eliminar sangrías de las instrucciones seleccionadas. |
|
Comments |
Haga clic en Add Comments para convertir las instrucciones seleccionadas en comentarios, o en Delete Comment para transformar los comentarios en instrucciones SQL. |
|
IN Value Conversion |
Un formato como A B se puede convertir al formato ('A','B'). |
Puede editar las instrucciones SQL del procedimiento almacenado creado en la página Create Stored Procedure. Sintaxis:
CREATE PROCEDURE proc_name (
[proc_parameter[,...]])
IS
BEGIN
proc_body:
Valid SQL routine statement
END [end_label]
Parámetros
Parámetro | Descripción |
proc_name | El nombre del procedimiento almacenado. De forma predeterminada, se crea en la base de datos actual. Para crearlo en una base de datos específica, agregue el nombre de esta como prefijo al nombre del procedimiento, con el formato db_name.sp_name. Nota El nombre de un procedimiento almacenado debe ser distinto al de cualquier función integrada de MySQL. De lo contrario, podría producirse un error. |
[proc_parameter[,…] ] | La lista de parámetros del procedimiento almacenado. Un parámetro se especifica con el formato `[IN |
proc_body | El cuerpo del procedimiento almacenado, que contiene las instrucciones SQL que se ejecutarán cuando se llame al procedimiento. El cuerpo comienza con BEGIN y termina con END. Si contiene solo una instrucción SQL, puede omitir los marcadores BEGIN y END. |
Paso 5: Finalice la creación del procedimiento almacenado.
Haga clic en Create en la esquina superior derecha para crear el procedimiento almacenado. Una vez creado, puede utilizar la instrucción CALL para llamarlo, igual que lo haría con una función integrada.

Para gestionar un procedimiento almacenado, haga clic derecho sobre su nombre en el panel de navegación izquierdo y seleccione la operación requerida en el menú contextual, que ofrece las siguientes opciones: View, Create, Edit, Run, Download, Delete y Refresh.
Para obtener más información, consulte Manage stored procedures.
Sintaxis:
CALL proc_name ([proc_parameter [,...]]);
Ejemplo:
CALL proc_total (30000, 20000);
