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

是不是oracle、sqlserver、mysql的存储过程语法不一样?... 是不是oracle、sqlserver、mysql的存储过程语法不一样? 展开
 我来答
匿名用户
推荐于2018-04-14
展开全部
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)
sky496967173
2013-03-05 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4060
采纳率:80%
帮助的人:586万
展开全部
oracle的sql语句,存储过程,触发器,函数等可以在pl/sql中编辑,编译,调试;
oracle、sqlserver、mysql的存储过程语法大体一样,少许改动;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星辰大海byj
2013-03-05 · TA获得超过1020个赞
知道小有建树答主
回答量:993
采纳率:100%
帮助的人:521万
展开全部
oracle的存储过程是使用pl/sql编程的,pl/sql还用于编写存储函数、触发器等
存储过程是平台相关的,也就是说不同数据库的存储过程语法是有区别的
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式