Este tema proporciona información sobre la compilación y depuración de objetos PL.
Información de contexto
PL significa Procedural Language y es una extensión de SQL. PL incorpora características de lenguajes de programación basados en sentencias SQL, organiza operaciones de datos y sentencias de consulta en código PL, e implementa funciones complejas mediante juicios lógicos y bucles.
Puede usar PL para programar diversos programas con funciones avanzadas y encapsular la lógica de negocio en una base de datos. Esto garantiza una mejor abstracción y mayor seguridad, reduce las interacciones de red y acelera las llamadas, lo que mejora el rendimiento.
El desarrollo de programas PL es una tarea diaria importante para los desarrolladores de servicios de bases de datos. Al igual que el módulo de compatibilidad con sentencias SQL, el módulo de depuración de PL también tiene gran importancia. Por lo tanto, los desarrolladores requieren un área de desarrollo de PL y una función de depuración durante la programación.
Puede usar sentencias PL para escribir objetos de base de datos como funciones, procedimientos almacenados, paquetes y desencadenadores.
En OceanBase Developer Center (ODC) V2.2.0 y versiones posteriores, puede crear, compilar, ejecutar y depurar objetos PL y bloques anónimos. Puede compilar sentencias PL en la sección de edición de la ventana de bloque anónimo. También puede editar y depurar objetos PL creados. Se recomienda usar la versión más reciente de ODC para obtener una mejor experiencia.
Suponga que desea crear un procedimiento almacenado llamado PROC_VARCHAR2 en la base de datos GSH.
Los datos usados en este tema son ejemplos. Puede reemplazarlos con datos reales según sea necesario.
Requisitos previos
-
La siguiente tabla muestra la información de compatibilidad con PL en ODC.
Función
Objeto compatible
Origen de datos compatible
Versión compatible
Compilación
Funciones, procedimientos almacenados y paquetes
OceanBase Oracle y OB Cloud Oracle
V2.2.7x y V3.0.0 y posteriores
Depuración
Funciones, procedimientos almacenados y bloques anónimos
OceanBase Oracle
V3.2.3 y posteriores
Ejecución
Funciones y procedimientos almacenados
OceanBase Oracle, OB Cloud Oracle, OceanBase MySQL, OB Cloud MySQL
V2.0.x y posteriores
Funciones y procedimientos almacenados
MySQL
V5.7
Ejecución
Paquetes y bloques anónimos
OceanBase Oracle y OB Cloud Oracle
V2.0.x y posteriores
Tenga en cuenta las siguientes reglas:
Si el origen de datos es una instancia de clúster de OceanBase, debe conectarse a ella mediante OceanBase Database Proxy (ODP). Esta instancia no admite depuración.
La ventana de bloque anónimo solo se muestra para orígenes de datos OceanBase Oracle y OB Cloud Oracle.
Las versiones de ODC anteriores a la V3.2.3 no admiten depuración en la arquitectura Advanced RISC Machine (ARM).
Compilación de PL
-
Cree un procedimiento almacenado en la ventana de SQL.

CREATE OR REPLACE PROCEDURE PROC_VARCHAR2(p1 in VARCHAR2, p2 out VARCHAR2, p3 in out VARCHAR2) as v1 varchar2(64) := 'hello,oceanbase'; begin dbms_output.put_line(p1); dbms_output.put_line(p3); p2 := 'hello,odc'; end; -
En el panel de navegación izquierdo de la ventana de desarrollo de SQL, haga clic en el icono More junto al procedimiento almacenado
PROC_VARCHAR2en la lista de procedimientos almacenados y, a continuación, seleccione Compile en la lista desplegable.
-
Compile la sentencia PL y consulte el resultado de la compilación.

Depuración de PL
-
En el panel de navegación izquierdo de la ventana de desarrollo de SQL, haga clic en el icono More junto al procedimiento almacenado
PROC_VARCHAR2en la lista de procedimientos almacenados y, a continuación, seleccione Debug en la lista desplegable.
-
Establezca los parámetros y haga clic en OK.
ImportantePara OceanBase Database V4.0.0 y versiones posteriores, debe obtener el permiso de depuración antes de depurar. La sintaxis es la siguiente:
GRANT DEBUG CONNECT SESSION TO GSH; GRANT DEBUG ANY PROCEDURE TO GSH;
-
Vaya a la página de depuración y haga clic en Batch Execute para ejecutar las sentencias PL.
