mysql与oracle存储过程语法,oracle的存储过程和pl/sql有什么联系,另外存储过程的语法都一样吗?...

oracle的存储过程 和 pl/sql 的关系是:

pl/sql 是一门语言, 用来写 oracle的存储过程。

oracle、sqlserver、mysql 的存储过程语法。 只能说是 某些地方 相同, 某些地方有差异。

我就列一下, 3种数据库的 存储过程的一个对比例子, 你可以对比着参考参考。

首先是 Oracle 的

注:CREATE OR REPLACE 没有就创建,有的话就更新。 请注意, 定义存储过程内使用的变量, 不需要加 DECLARE 关键字。

多个变量之间用分号分隔。

SQL> CREATE OR REPLACE PROCEDURE HelloWorld AS

2 testvalue1 VARCHAR2(20);

3 testvalue2 VARCHAR2(20);

4 BEGIN

5 dbms_output.put_line('Hello World');

6 testvalue1 := 'First Test! ';

7 SELECT 'Second Test !' INTO testvalue2 FROM DUAL;

8 dbms_output.put_line( testvalue1 || testvalue2 );

9 END HelloWorld;

10 /

过程已创建。

SQL> set serveroutput on

SQL>

SQL> BEGIN

2 HelloWorld();

3 END;

4 /

Hello World

First Test! Second Test !

PL/SQL 过程已成功完成。

SQL Server 的

请注意, 定义存储过程内使用的变量, 需要加 DECLARE 关键字。 多个变量之间用逗号分隔。

1> CREATE PROCEDURE HelloWorld AS

2> DECLARE

3> @testvalue1 AS VARCHAR(20),

4> @testvalue2 AS VARCHAR(20);

5> BEGIN

6> PRINT 'Hello World';

7> SET @testvalue1 = 'First Test !';

8> SELECT @testvalue2 = 'Second Test !';

9> PRINT( @testvalue1 + @testvalue2);

10> END;

11> go

1> DECLARE @RC int

2> EXECUTE @RC = HelloWorld

3> PRINT @RC

4> go

Hello World

First Test !Second Test !

0

MySQL 的

MySQL 存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”

DELIMITER //

CREATE PROCEDURE HelloWorld()

BEGIN

DECLARE testvalue1 VARCHAR(20);

DECLARE testvalue2 VARCHAR(20);

SELECT 'Hello World';

SET testvalue1 = 'First Test !';

SELECT 'Second Test !' INTO testvalue2;

SELECT CONCAT( testvalue1 , testvalue2 );

END //

DELIMITER ;

mysql> call HelloWorld();

+-------------+

| Hello World |

+-------------+

| Hello World |

+-------------+

1 row in set (0.00 sec)

+-----------------------------------+

| CONCAT( testvalue1 , testvalue2 ) |

+-----------------------------------+

| First Test !Second Test ! |

+-----------------------------------+

1 row in set (0.01 sec)

Query OK, 0 rows affected (0.02 sec)

取消

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值