當前位置:首頁 » 存儲配置 » 執行帶參數存儲過程

執行帶參數存儲過程

發布時間: 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 定時執行存儲過程

熱點內容
python回測框架 發布:2025-05-19 23:19:28 瀏覽:724
單片機的壓縮演算法 發布:2025-05-19 23:18:06 瀏覽:272
電腦怎麼配置桌面分區 發布:2025-05-19 23:15:23 瀏覽:655
房車里的雞肋配置有哪些 發布:2025-05-19 23:13:41 瀏覽:610
溯源碼平台 發布:2025-05-19 22:59:37 瀏覽:251
c語言課程報告 發布:2025-05-19 22:52:38 瀏覽:237
編程軟體e 發布:2025-05-19 22:51:00 瀏覽:128
手機壁紙安卓app哪個最好用 發布:2025-05-19 22:50:06 瀏覽:47
mysqllinux安裝 發布:2025-05-19 22:42:55 瀏覽:358
android開發必備 發布:2025-05-19 22:36:08 瀏覽:889