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

执行带参存储过程

发布时间: 2024-12-12 12:00:57

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

sql">/*
查询:
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 定时执行存储过程

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

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

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

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

程序中调用的话看你用什么语言了 各个语言的调用方法不一样

4. 在JAVA中怎么调用带参数的存储过程啊

JDBC调用存储过程是Java中执行数据库存储过程的一种方式,关键在于使用CallableStatement对象。首先,需要正确配置数据库驱动,然后通过DriverManager.getConnection方法获取数据库连接。

例如,调用存储过程p,它有四个参数,可以使用问号占位符表示这些参数:

CallableStatement cstmt = conn.prepareCall("{call p(?,?,?,?)}");

接下来,需要注册输出参数。这里,第三个和第四个问号被视为输出参数,并指明它们的数据类型为INTEGER:

cstmt.registerOutParameter(3, Types.INTEGER);

cstmt.registerOutParameter(4, Types.INTEGER);

对于输入参数,可以使用setInt方法设置值。比如,第一个和第二个问号作为输入参数,第三个既作为输入又作为输出参数,第四个作为输入参数:

cstmt.setInt(1, 3);
cstmt.setInt(2, 4);
cstmt.setInt(4, 5);

然后,调用execute方法执行存储过程:

cstmt.execute();

最后,获取输出参数的值,如:

int three = cstmt.getInt(3);
System.out.println(three);
int four = cstmt.getInt(4);
System.out.println(four);

执行完毕后,记得关闭CallableStatement和Connection对象:

cstmt.close();
conn.close();

以上步骤是Java中调用带参数的存储过程的标准流程,适用于多种数据库系统,特别是Oracle。下面给出一个Oracle数据库中使用的存储过程代码示例:

create or replace procere p (v_a in number, v_b number, v_ret out number, v_temp in out number) is
begin
if(v_a > v_b) then
v_ret := v_a;
else
v_ret := v_b;
end if;
v_temp := v_temp + 1;
end;

这段代码定义了一个存储过程,包含输入参数v_a和v_b,输出参数v_ret,以及一个输入输出参数v_temp。

5. 触发器怎么调用带参存储过程

触发器调用带参存储过程如下:
1、当向表unit插入的数据后,且objectid>10000时,向表test_tab插入数据。
2、存储过程:向表test插入调用存储时的参数。

6. ASPNET怎样调用一个存储过程(带参数的)

ASPNET怎样调用一个存储过程(带参数的)使用的是Ado.NET中的相关的数据库操作方法。
Ado.NET连接数据库有以下几个步骤:
1:使用配置的数据库连接串,创建数据库连接 Connection 对象
2:构建操作的sql语句
3:定义command对象
4:打开数据连接
5:执行命令
举一个例子,删除操作
public int DeleteStudent3(int stuID)
{

int result = 0;

using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand objCommand = new SqlCommand(dboOwner + ".usp_DeleteStudent", connection);
objCommand.CommandType = CommandType.StoredProcere;

objCommand.Parameters.Add("@stuID", SqlDbType.Int).Value = stuID;

connection.Open();
result = objCommand.ExecuteNonQuery();
}
return result;
}

7. 在C#中怎么调用带参数的存储过程啊

1)执行一个没有配携参数的存储过程的代码如下:
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.selectCommand = new SqlCommand();
da.selectCommand.Connection = conn;
da.selectCommand.CommandText = "NameOfProcere";
da.selectCommand.CommandType = CommandType.StoredProcere;
(2)执行一个有参数培搏伏的存储过程的代码如下
SqlConnection conn=new SqlConnection(“connectionString”);
SqlDataAdapter da = new SqlDataAdapter();
da.selectCommand = new SqlCommand();
da.selectCommand.Connection = conn;
da.selectCommand.CommandText = "NameOfProcere";
da.selectCommand.CommandType = CommandType.StoredProcere;
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.Input;
param.Value = Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);
若需要添加输出参数:
param = new SqlParameter("@ParameterName"银滑, SqlDbType.DateTime);
param.Direction = ParameterDirection.Output;
param.Value = Convert.ToDateTime(inputdate);
da.selectCommand.Parameters.Add(param);
若要获得参储过程的返回值:
param = new SqlParameter("@ParameterName", SqlDbType.DateTime);
param.Direction = ParameterDirection.ReturnValue;

8. SQL Server 如何执行 带参数的 存储过程

带参数的存储过程执行方法如下:

(1)调用通用数据访问类:SqlHelper,执行SqlHelper.ExecuteNonQuery()方法

(2)使敬誉春用示例:SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcere,sqlexec,myparm)

(3)其中传递的4个参数如下:

“conn”:为链接字符

“CommandType.StoredProcere”:表示要执亮耐行的SQL存储过程类型

“sqlexec”:要执行的SQL存储过程

“myparm”:为传递的参虚冲数,它需要参数的初始化、赋予参数名称、设定类型、长度和值等

(4)当ExecuteNonQuery()执行select 查询时,结果总是返回-1。ExecuteNonQuery()执行Update、Insert和Delete语句时,返回值为该命令所影响的行数。

热点内容
dota2linux 发布:2024-12-12 14:18:52 浏览:480
mysql数据库如何导入 发布:2024-12-12 14:11:14 浏览:920
监控器存储卡在哪里看 发布:2024-12-12 14:04:55 浏览:267
怎样把手机存储移到内存卡 发布:2024-12-12 13:49:31 浏览:673
如何知道服务器硬盘号码 发布:2024-12-12 13:49:28 浏览:496
安卓投屏怎么才能无延迟 发布:2024-12-12 13:40:52 浏览:854
androidl通知 发布:2024-12-12 13:22:59 浏览:532
如何搭建短信服务器 发布:2024-12-12 13:18:28 浏览:112
开拓者bose音响是哪个版本配置 发布:2024-12-12 13:01:27 浏览:571
泰拉瑞亚电脑联机服务器ip号 发布:2024-12-12 12:48:42 浏览:238