当前位置:首页 » 存储配置 » 执行带参数存储过程

执行带参数存储过程

发布时间: 2023-03-11 17:03:52

❶ 带参数的存储过程如何去写谁给举个例子

写带有参数存储过程应该是sql数据库的问题:
先建立一个表,并添加一些数据来进行演示:
create
table
t_student(
id
int
not
null,
name
nvarchar
(10)
null,
age
tinyint
null,
school
nvarchar(20)
null,
class
nvarchar(10)
null,
score
float
null,
constraint
[pk_student_id]
primary
key
clustered(id)
)
go
insert
into
t_student
values(1,'张小红',8,'育才小学','一班',92)
insert
into
t_student
values(2,'王丽丽',8,'育才小学','一班',90)
insert
into
t_student
values(3,'张燕',7,'云华小学','二班',86)
insert
into
t_student
values(4,'刘华',6,'云华小学','二班',85)
一、exec
exec命令可以执行一个存储过程也可以执行一个动态sql语句。先来看看怎么执行存储过程:
新建一个存储过程
sp_getstudent
,返回
成绩大于90
分的学生:
create
procere
[dbo].[sp_getstudent]
@score
float,
@nums
int
output
as
begin
set
nocount
on;
select
*
from
t_student
where
score
>=@score
select
@nums=count(1)
from
t_student
where
score
>=@score
if(@nums>0)
return
1
else
return
0
end
go
该存储过程涉及了
查询操作、返回值和输出参数,我们来看用exec
命令如何调用:
declare
@return_value
int,
@outnums
int
exec
@return_value
=
[dbo].[sp_getstudent]
@score
=
90,
@nums
=
@outnums
output
select
@outnums
as
n'大于90分的人数'
select
'返回值'
=
@return_value
go
执行结果:
我们发现exec
执行存储过程和我们平时程序执行一个方法是几乎一样的,返回值参数
直接就可以等于存储过程的执行后的返回值,输出参数
在后面需要增加
output
关键字。

❷ oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,

1、新建一个存储过程(Procere)。

❸ sqlplus中怎么执行带参数的存储过程

SQL> create or replace procere jl_test
2 (a in varchar2,b out varchar2)
3 as
4 begin
5 b:= a;
6 end;
7 /
SQL> var c varchar2(10);
SQL> exec jl_test('01',:c)
PL/SQL 过程已成功完成。
SQL> print c
C
--------------------------------
01

❹ sql 怎么执行带输出参数的存储过程

1、
对象资源管理器
中选中你要执行的存储过程
2、右击选择
对话框中的执行存储过程...
3、在出现的对话框中填入你参数的值
点击确定

❺ oracle 中用什么命令执行一个带参数的存储过程

具体如下:

1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。

❻ 在java中怎么调用带参数的存储过程

JDBC调用存储过程: CallableStatementx0dx0a在Java里面调用存储过程,写法那是相当的固定:x0dx0aClass.forName(....x0dx0aConnection conn = DriverManager.getConnection(....x0dx0a/**x0dx0a*p是要调用的存储过程的名字,存储过程的4个参数,用4个?号占位符代替x0dx0a*其余地方写法固定x0dx0a*/x0dx0aCallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");x0dx0a/**x0dx0a*告诉JDBC,这些个参数,哪些是输出参数,输出参数的类型用java.sql.Types来指定x0dx0a*下面的意思是,第3个?和第4个?是输出参数,类型是INTEGER的x0dx0a*Types后面具体写什么类型,得看你的存储过程参数怎么定义的x0dx0a*/x0dx0acstmt.registerOutParameter(3, Types.INTEGER);x0dx0acstmt.registerOutParameter(4, Types.INTEGER);x0dx0a/**x0dx0a*在我这里第1个?和第2个?是输入参数,第3个是输出参数,第4个既输入又输出x0dx0a*下面是设置他们的值,第一个设为3,第二个设为4,第4个设置为5x0dx0a*没设第3个,因为它是输出参数x0dx0a*/x0dx0acstmt.setInt(1, 3);x0dx0acstmt.setInt(2, 4);x0dx0acstmt.setInt(4, 5);x0dx0a//执行x0dx0acstmt.execute();x0dx0a//把第3个参数的值当成int类型拿出来x0dx0aint three = cstmt.getInt(3);x0dx0aSystem.out.println(three);x0dx0a//把第4个参数的值当成int类型拿出来x0dx0aint four = cstmt.getInt(4);x0dx0aSystem.out.println(four);x0dx0a//用完别忘给人家关了,后开的先关x0dx0acstmt.close();x0dx0aconn.close();x0dx0ax0dx0aJDBC调用存储过程,掌握这一个程序足够了.x0dx0a以下是上面程序使用的存储过程的代码,我用的是Oracle数据库,不过不论是什么数据库,对于你的程序,JDBC这一端写法都是一样的.x0dx0ax0dx0acreate or replace procere px0dx0a(v_a in number,v_b number,v_ret out number,v_temp in out number)x0dx0aisx0dx0abeginx0dx0aif(v_a > v_b) thenx0dx0av_ret := v_a;x0dx0aelsex0dx0av_ret := v_b;x0dx0aend if;x0dx0av_temp := v_temp + 1;x0dx0aend;

❼ oracle 中用什么命令执行一个带参数的存储过程

具体如下:

1、第一步,创建一个新的存储过程,见下图,转到下面的步骤。

❽ sql数据库中怎样调用带参数的存储过程

在sql
server中
执行带参数的存储过程
exec+空格+存储过程名+空格+参数
多个参数的话用逗号分隔
传出参数要加output
例如:
exec
P_GetIntegratedFluxOneMoment
@StartTableName,@ColName,@StartTime,@StartValue
output
其中@StartTableName,@ColName,@StartTime,@StartValue都是前面已经定义好的变量
传入参数也可以不用变量
直接写值也行
程序中调用的话看你用什么语言了
各个语言的调用方法不一样

❾ sql数据库中怎样调用带参数的存储过程

1、使用SQL语句

--a)方式一
--exec存储过程名称参数名='值'
execP_Titles_ByType@type='business'
go
--b)方式二
--exec存储过程名称参数值
execP_Titles_ByType'business'



2、可视化操作

a.在数据库中找到要执行的存储过程

b.右击存储过程,在出现的菜单中选择执行存储过程选项

c.在新出现的对话框中,在对应的参数后面的值列填入对应的参数值

d.填写完参数值,最后点击确定,然后查询结果会出现


图-b

❿ 定时执行带参数的存储过程,怎么定义job

/*
查询:
selectjob,broken,what,interval,t.*fromuser_jobst;
jobjob的唯一标识,自动生成的
broken是否处于运行状态,N;运行;Y:停止
what存储过程名称
next_date初次执行时间
interval执行周期

删除:
begindbms_job.remove(jobno);end;
根据what的内容确定其对应的job,并如此执行删除

执行时间例子:
描述INTERVAL参数值
每天午夜12点''TRUNC(SYSDATE+1)''
每天早上8点30分''TRUNC(SYSDATE+1)+(8*60+30)/(24*60)''
每星期二中午12点''NEXT_DAY(TRUNC(SYSDATE),''''TUESDAY'''')+12/24''
每个月第一天的午夜12点''TRUNC(LAST_DAY(SYSDATE)+1)''
每个季度最后一天的晚上11点''TRUNC(ADD_MONTHS(SYSDATE+2/24,3),''Q'')-1/24''
每星期六和日早上6点10分''TRUNC(LEAST(NEXT_DAY(SYSDATE,''''SATURDAY"),NEXT_DAY(SYSDATE,"SUNDAY")))+(6×60+10)/(24×60)''
每3秒钟执行一次'sysdate+3/(24*60*60)'
每2分钟执行一次'sysdate+2/(24*60)'

1:每分钟执行
Interval=>TRUNC(sysdate,'mi')+1/(24*60)--每分钟执行
interval=>'sysdate+1/(24*60)'--每分钟执行
interval=>'sysdate+1'--每天
interval=>'sysdate+1/24'--每小时
interval=>'sysdate+2/24*60'--每2分钟
interval=>'sysdate+30/24*60*60'--每30秒
2:每天定时执行
Interval=>TRUNC(sysdate+1)--每天凌晨0点执行
Interval=>TRUNC(sysdate+1)+1/24--每天凌晨1点执行
Interval=>TRUNC(SYSDATE+1)+(8*60+30)/(24*60)--每天早上8点30分执行
3:每周定时执行
Interval=>TRUNC(next_day(sysdate,'星期一'))+1/24--每周一凌晨1点执行
Interval=>TRUNC(next_day(sysdate,1))+2/24--每周一凌晨2点执行
4:每月定时执行
Interval=>TTRUNC(LAST_DAY(SYSDATE)+1)--每月1日凌晨0点执行
Interval=>TRUNC(LAST_DAY(SYSDATE))+1+1/24--每月1日凌晨1点执行
5:每季度定时执行
Interval=>TRUNC(ADD_MONTHS(SYSDATE,3),'q')--每季度的第一天凌晨0点执行
Interval=>TRUNC(ADD_MONTHS(SYSDATE,3),'q')+1/24--每季度的第一天凌晨1点执行
Interval=>TRUNC(ADD_MONTHS(SYSDATE+2/24,3),'q')-1/24--每季度的最后一天的晚上11点执行
6:每半年定时执行
Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),6)+1/24--每年7月1日和1月1日凌晨1点
7:每年定时执行
Interval=>ADD_MONTHS(trunc(sysdate,'yyyy'),12)+1/24--每年1月1日凌晨1点执行

相关方法:
修改要执行的操作:dbms_job.what(jobno,'sp_fact_charge_code;');--修改某个job名
修改下次执行时间:dbms_job.next_date(job,next_date);
修改间隔时间:dbms_job.interval(job,interval);
停止job:dbms.broken(job,broken,nextdate);
dbms_job.broken(v_job,true,next_date);--停止一个job,里面参数true也可是false,next_date(某一时刻停止)也可是sysdate(立刻停止)。
*/

createorreplaceprocereproc_auto_exec_jobas
begin
declare
jobnumber;
BEGIN
DBMS_JOB.SUBMIT(
JOB=>job,/*自动生成JOB_ID*/
WHAT=>'proc_test_job;',/*需要执行的过程或SQL语句*/
/*NEXT_DATE=>sysdate,*//*初次执行时间,立刻执行*/
/*INTERVAL=>'sysdate+3/(24*60*60)'*//*执行周期-每3秒钟*/
NEXT_DATE=>TRUNC(SYSDATE+1)+(0*60+30)/(24*60), /*初次执行时间,12点30分*/
INTERVAL=>'TRUNC(SYSDATE+1)+(0*60+30)/(24*60)' /*每天12点30分*/
);
COMMIT;

/*dbms_job.submit(job,'proc_test_job;',sysdate,'trunc(sysdate,''mi'')+1/(24*60)');/*执行周期-每1分钟*/
commit;*/

DBMS_JOB.RUN(job);
end;
endproc_auto_exec_job;
beginproc_auto_exec_job;end;


ORACLE 定时执行存储过程

热点内容
linux下执行python 发布:2025-05-20 03:23:30 浏览:430
sql查看器 发布:2025-05-20 03:22:53 浏览:133
天格属火三才配置哪些最好 发布:2025-05-20 03:18:42 浏览:977
黑龙泼觉醒加血脚本 发布:2025-05-20 03:17:18 浏览:554
编程星空界面 发布:2025-05-20 02:51:57 浏览:774
流沙文件夹 发布:2025-05-20 02:51:17 浏览:707
sublimepython环境配置 发布:2025-05-20 02:36:13 浏览:578
cntv文件夹 发布:2025-05-20 02:33:20 浏览:219
vs设置编译提示 发布:2025-05-20 02:33:10 浏览:217
android服务是什么 发布:2025-05-20 02:19:31 浏览:201