用Navicat for mysql 创建存储过程

用Navicat for mysql 创建存储过程,第1张

使用Navicat for MySQL工具创建存储过程步骤:

1. 新建函数(选择函数标签 ->点击新建函数):

2、输入函数的参数个数、参数名、参数类型等:

3、编写存储过程:

4、保存(请输入合法名称):

5、运行存储过程(在结果1,2,3...中可以查询输出信息):

存储过程和函数目的是为了 可重复地 执行 *** 作数据库的sql语句的集合。

区别是写法和调用上。

写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数;

函数的参数列表只有输入参数,并且有return <返回值类型,无长度说明>。

返回值上:

存储过程的返回值,可以有多个值,

函数的返回值,只有一个值。

调用方式上:

存储过程的调用方式有:

1)、exec <过程名>

2)、execute <过程名>

3)、在PL/SQL语句块中直接调用。

函数的调用方式有:

在PL/SQL语句块中直接调用。

具体分为:

----调用FUNCTION add_three_numbers

----1. 位置表示法调用函数

BEGIN

dbms_output.put_line(add_three_numbers(2,4,5))

END

----2. 命名表示法调用函数

BEGIN

dbms_output.put_line(add_three_numbers(b=>3, a=>4,c=>2))

END

----3. 混合使用位置表示法和命名表示法调用函数

BEGIN

dbms_output.put_line(add_three_numbers(3, b=>4,c=>2))

END

----4. 排除表示法

BEGIN

dbms_output.put_line(add_three_numbers(12,c=>2))

END

----5. sql调用表示法 --混合表示法

SELECT add_three_numbers(3, b=>4,c=>2) FROM DUAL

----1. 该函数接受3个可选参数,返回3个数字的和

CREATE OR REPLACE FUNCTION add_three_numbers

(

a NUMBER:=0, b NUMBER:=0, c NUMBER:=0

)

RETURN NUMBER IS

BEGIN

RETURN a+b+c

END

存储过程:

基本语法:

create procedure <过程名>(<参数列表,无参时忽略>)

as|is

变量声明、初始化

begin

业务处理、逻辑代码

exception

异常捕获、容错处理

end <过程名>

参数:<参数名>in|out|in out <参数类型,无长度说明>,如:v_name varchar2

in:入参

out:出参

in out:出入参

注:as|is表示as或is

调用语法:

1)、exec <过程名>

2)、execute <过程名>

3)、在PL/SQL语句块中直接调用。

例:

create or replace procedure up_wap(v_param1 in out varchar2,v_param2 in out varchar2)

is

v_temp varchar2(20)

begin

dbms_output.put_line('交换前参数1:'||v_param1||' 参数2:'||v_param2)

v_temp:=v_param1

v_param1:=v_param2

v_param2:=v_temp

dbms_output.put_line('交换后参数1:'||v_param1||' 参数2:'||v_param2)

exception

when others then dbms_output.put_line('There is a error when the procedure up_wap executing!')

end up_wap

/

-- 调用存储过程

declare

v_param1 varchar2(20):='param1'

v_param2 varchar2(20):='param2'

begin

up_wap(v_param1 =>v_param1,v_param2 =>v_param2)

end

/

自定义函数(function)

基本语法:

create function <函数名>(<参数列表,无参时忽略>)

return <返回值类型,无长度说明>

as|is

变量声明、初始化

begin

业务处理、逻辑代码

return <返回的值>

exception

异常捕获、容错处理

end <函数名>

参数:in 入参

注:只有入参的类型。

在存储过程和自定义函数中的参数的传递(入参和出参)不能使用%type或%rowtype匹配,不能使用空值null,但是存储过程可以返回空值。

例:

create function uf_select_name_by_id_test(v_id in number)

return varchar2

is

v_name t_test.t_name%type

begin

select t_name into v_name from t_test where t_id=v_id

return v_name

exception

when others then dbms_output.put_line('error')

end uf_select_name_by_id_test

/

select uf_select_name_by_id_test(1) 姓名 from dual-- select调用

declare --pl/sql语句块调用

v_name varchar2(20)

begin

v_name:=uf_select_name_by_id_test(1)

dbms_output.put_line('name = '||v_name)

end

/


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6925682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存