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

執行帶參存儲過程

發布時間: 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語句時,返回值為該命令所影響的行數。

熱點內容
槍之榮耀安卓版在哪裡下載 發布:2024-12-12 14:22:28 瀏覽:519
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