功能 |
Oracle语法 |
MariaDB语法 |
Oracle执行结果 | MariaDB执行结果 |
|
|---|---|---|---|---|---|
创建存储过程 |
未使用参数和变量 |
CREATE PROCEDURE p1 AS BEGIN NULL; END p1; / |
DELIMITER // CREATE PROCEDURE p1() IS BEGIN NULL; END // DELIMITER ; |
![]() |
![]() |
创建存储过程 |
带有参数和变量 |
CREATE PROCEDURE p1(p_input IN NUMBER, p_output OUT NUMBER) AS v_variable VARCHAR2(100); BEGIN v_variable := 'Hello, World!'; p_output := p_input * 2; END; / |
DELIMITER // CREATE PROCEDURE p1(INOUT p_input INT) BEGIN DECLARE v_variable VARCHAR(100); SET v_variable = 'Hello, World!'; SET p_input = p_input * 2; END // DELIMITER ; |
![]() |
![]() |
创建存储函数 |
CREATE FUNCTION f1(a VARCHAR2) RETURN VARCHAR2 IS v_result VARCHAR2(100); BEGIN `v_result := a |
' appended text'; RETURN v_result; END; /` |
DELIMITER // CREATE FUNCTION f1(a VARCHAR(100)) RETURN VARCHAR(100) IS v_result VARCHAR(100); BEGIN SET v_result = CONCAT(a, ' appended text'); RETURN v_result; END // DELIMITER ; |
||
| 游标 | 带有FOR 循环显式游标 | CREATE TABLE t1 ( a NUMBER, b NUMBER ); INSERT INTO t1 (a, b) VALUES (1, 2); INSERT INTO t1 (a, b) VALUES (3, 4); INSERT INTO t1 (a, b) VALUES (5, 6); CREATE OR REPLACE PROCEDURE p1 AS a_val t1.a%TYPE; b_val t1.b%TYPE; CURSOR cur IS SELECT a, b FROM t1; BEGIN FOR rec IN cur LOOP a_val := rec.a; b_val := rec.b; `DBMS_OUTPUT.PUT_LINE('a: ' |
a_val | ||
| 游标 | 带有 FOR 循环的隐式游标 | CREATE OR REPLACE PROCEDURE p1 IS BEGIN FOR rec IN (SELECT a, b FROM t1) LOOP `DBMS_OUTPUT.PUT_LINE('A = ' |
rec.a | ||
| 游标 | 带有参数和 FOR 循环的游标 | CREATE OR REPLACE PROCEDURE process_cursor(prm_a IN INT, prm_b IN INT) IS CURSOR c IS SELECT a, b FROM t1 WHERE a = prm_a AND b = prm_b; BEGIN FOR rec IN c LOOP `DBMS_OUTPUT.PUT_LINE('A: ' |
rec.a | ||
| 游标 | s %ISOPEN, %ROWCOUNT, %FOUND, %NOTFOUND方式显式游标属性 |
SET SERVEROUTPUT ON; BEGIN DECLARE CURSOR c IS SELECT a, b FROM t1; v_a t1.a%TYPE; v_b t1.b%TYPE; BEGIN OPEN c; IF c%ISOPEN THEN DBMS_OUTPUT.PUT_LINE('Cursor is open.'); ELSE DBMS_OUTPUT.PUT_LINE('Cursor is not open.'); END IF; LOOP FETCH c INTO v_a, v_b; EXIT WHEN c%NOTFOUND; `DBMS_OUTPUT.PUT_LINE('A: ' |
v_a |
MariaDB 设置 sql_mode=Oracle 和 Oracle 对比验证
尚雷55802024-12-22 9:29
相关推荐
骑着蜗牛撵大象3276 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异zhengfei6118 小时前
Go-fastdfs /reload 未授权访问: 有效PoC大维10 小时前
DBX 实测:从 SQLite 查询到 MiniMax-M3 自然语言生成 SQL景煜拾年12 小时前
InnoAI SQL 助手腾科IT教育13 小时前
Oracle考试全解析:OCP、OCM认证体系与核心考点备考指南Decay__1 天前
22_MySQL 运维自动化平台 —— 部署编排 + 监控 + 巡检 + 告警 + 工单闭环一体化Decay__1 天前
21_MySQL 优化案例集 —— 慢 SQL 优化、索引重构与参数调整收益对比挖掘狂人2 天前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救codigger2 天前
MySQL 深分页优化:limit 100000, 10 慢在哪,怎么救


