當前位置:首頁 » 存儲配置 » oracle存儲過程日期參數

oracle存儲過程日期參數

發布時間: 2025-08-12 02:26:44

『壹』 oracle中如何得到執行存儲過程的開始和結束時間

需要在存儲過程中定義的時候把開始執行時間和結束時間列印出來。

舉例如下:

創建存儲過程:

sql">createorreplaceprocerep_test
as
v_begintimevarchar2(20);
v_endtimevarchar2(20);
v_strvarchar2(10);
begin
v_begintime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
select'badkano'intov_strfromal;
v_endtime:=to_char(sysdate,'yyyy-mm-ddhh24:mi:ss');
dbms_output.put_line('開始時間為:'||v_begintime);
dbms_output.put_line('結束時間為:'||v_endtime);
end;
end;

執行存儲過程:

begin
p_test;
end;

執行結果:

說明:由於樣例存儲過程過於簡單,但在進行過多數據處理的時候,看到的結果會比較明顯。

『貳』 Oracle存儲過程的參數中帶入日期條件,如條件中有'YYYY-MM-DD'

雙引號? 還是兩個單引號?
to_date(''2013/7/2'', ''yyyy-mm-dd'')

『叄』 oracle中怎麼用存儲過程將的存儲過程的執行時間返回出去。

可以在日誌表中加一個運行時間欄位,可以在程序運行之前設定一定變數值為sysdate,程序運行結尾出一個變數2 sysdate , 兩個變數相減就可以得到過程運行時間.

begin
v_date1:= sysdate;
...
v_date2:=sysdate;
v_run_num=v_date2-v_dat1;

insert into 日誌表(run_num_time) values(v_run_num);
commit;

『肆』 oracle procere存儲過程

OR REPLACE PROCEDURE 存儲過程名字( 參數1 IN NUMBER, 參數2 IN NUMBER ) IS/AS變數1 INTEGER :=0;變數2 DATE;BEGIN.END 存儲過程名字2、SELECT INTO STATEMENT
將select查詢的結果存入到變數中,可以同時將多個列(欄位)存儲到多個變數中,必須有一條記錄,否則拋出異常(如果沒有記錄,拋出NO_DATA_FOUND)
例子:
BEGIN SELECT col1,col2 into 變數1,變數2 FROM typestruct where xxx; EXCEPTION WHEN NO_DATA_FOUND THEN ROLLBACK; RAISE; END;3、IF判斷
IF 條件1 THEN Do Someting ELSIF 條件2 THEN Do Someting ELSIF 條件3 THEN Do Someting ELSE Do SometingEND IF;4、while循環
WHILE V_TEST=1 LOOP BEGIN XXXX END; END LOOP; 5、變數賦值
V_TEST := 123; 6、用for in使用cursor(游標)
. IS CURSOR cur IS SELECT * FROM xxx; BEGIN FOR cur_result in cur LOOP BEGIN V_SUM :=cur_result.列名1+cur_result.列名2 END; END LOOP; END; 7、用pl/sql developer debug
連接資料庫後建立一個Test Window
在窗口輸入調用SP的代碼,F9開始Debug,CTRL+N單步調試
注意事項:
1)存儲過程參數不帶取值范圍,in表示傳入,out表示輸出;
2)變數可帶取值范圍,後面接分號;
3)在判斷語句前最好先用count(*)函數判斷是否存在該條操作記錄
4)用select.into.給變數賦值
5)在代碼中拋出異常用RAISE;通常的用法:
EXCEPTION WHEN OTHERS THEN ROLLBACK; RAISE;/*異常分很多類,如NO_DATA_FOUND。OTHERS處本應該寫異常名稱,如果不想把異常分得那麼細,可以籠統一點用OTHERS來捕獲,即所有異常均用OTHERS來捕獲。WHEN OTHERS THEN 表示是其它異常。RAISE表示拋出異常,讓User可以看到。*/
6)AS/IS的區別
在試圖(VIEW)中只能用AS不能用IS
在游標(CURSOR)中只能用IS不能用AS
7)輸出變數賦值有兩種,一種是直接:=,還有一種就是SELECT INTO
8)顯示調試信息
a.存儲過程中在必要的位置添加
DBMS_OUTPUT.put_line(『HI『);
b.打開DBMS_OUTPUT
show serveroutput;set serveroutput on;
9)刪除PROCEDURE
DROP PROCEDURE procere_name;
oracle procere存儲過程

『伍』 可否幫我舉一個oracle的存儲過程 並且要帶輸入輸出參數 還有如何調用的語句

reate or replace procere get_content_river(cxrq in varchar2,--查詢日期
fsr in varchar2,--發送人自動發送寫自動發送
content out varchar2,
bz out varchar2,--0為失敗1為成功
msg out varchar2) is
v_zm varchar2(50);
v_xzqy varchar2(20);
v_xzbm varchar2(20);
n_jjsw number(10,3);
n_bzsw number(10,3);
v_type varchar2(2);
cursor cur_st_river_r(cxsj varchar2)is
select *
from st_river_r
where substr(to_char(st_river_r.ymdhm,'yyyy-mm-dd'),1,10) = cxsj;
rec_st_river_r st_river_r%rowtype;
begin
msg:='';
content:='';
bz := '1';
v_type := '1';--默認為人工
open cur_st_river_r(cxrq);
loop
fetch cur_st_river_r into rec_st_river_r;
exit when cur_st_river_r%notfound;
--取得警戒水位\保證水位
begin
select cshct.alwtlv,cshct.gnwtlv into n_jjsw,n_bzsw from CSHCT where cshct.ennmcd = rec_st_river_r.ennmcd;
exception
when others then
n_jjsw :=0;
n_bzsw :=0;
end;
--判斷
if n_jjsw <= rec_st_river_r.zr then
--取得站名
begin
select prnmsr.ennm into v_zm from prnmsr where prnmsr.ennmcd = rec_st_river_r.ennmcd;
exception
when others then
v_zm :='無';
end;
--行政區域編碼
begin
select DSEN.DSCD into v_xzbm from dsen where dsen.ennmcd = rec_st_river_r.ennmcd;
exception
when others then
v_xzbm :='無';
end;
--取得行政區域名稱
begin
select DSCDNM.DSNM into v_xzqy from dscdnm where dscdnm.dscd = v_xzbm;
exception
when others then
v_xzqy := '無';
end;
content:= content||'報警站名稱:'||v_zm||';'||'行政區名稱:'||v_xzqy||';'||'當前水位:'||to_char(rec_st_river_r.zr)||';'
||'警戒水位:'||n_jjsw||';'||'保證水位:'||n_bzsw||';';

end if;
end loop;
if fsr = '自動發送' then
v_type := '2';
end if;
if length(content)> 0 then
--插入簡訊記錄表 message
insert into message(
ID,
CONTENT,
SENDDATE,
REPLY,
PERSON,
TYPE,
CONTENTTYPE)
values
(
seq_message.nextval,
content,
sysdate,
'2',
fsr,
v_type,
'2'
);
end if;
close cur_st_river_r;
exception
when others then
if cur_st_river_r%isopen then
close cur_st_river_r;
bz := 0;
end if;
content := '-1';
msg := SQLERRM;

『陸』 oracle 存儲過程 輸出一個日期 如果周六 print1 否則 print0

create or replace PROCEDURE p_week
(v_date in varchar2)
as
v_int varchar2(1);
begin
select to_char(to_date(v_date,'yyyy-mm-dd'),'d') into v_int from al;
if v_int=7
then
dbms_output.put_line(1);
else
dbms_output.put_line(0);
end if;
end;

輸入日期格式必須是2013-05-09 這樣格式的

『柒』 各位高手請問oracle 存儲過程里時間為"23-JUN-11"如何轉換為標准日期格式"YYYY-MM-DD" 謝謝了

跟你的系統時間格式也有關系,不知道你要在哪裡改這個格式,如果這個是日期格式的話,可以這樣改成字元串格式:to_char(日期欄位, 'yyyy-mm-dd'),如果需要輸出日期格式就再加一層:to_date(to_char(日期欄位, 'yyyy-mm-dd'), 'yyyy-mm-dd')

熱點內容
安卓手機自動更新在哪裡關 發布:2025-08-12 04:47:11 瀏覽:433
潁上編程課 發布:2025-08-12 04:32:45 瀏覽:854
信號量源碼 發布:2025-08-12 04:17:08 瀏覽:114
創維盒子本地配置怎麼下載應用 發布:2025-08-12 04:17:08 瀏覽:828
扇貝加密 發布:2025-08-12 04:16:28 瀏覽:697
c語言雙向鏈表 發布:2025-08-12 04:00:52 瀏覽:573
python黃金 發布:2025-08-12 03:47:50 瀏覽:431
編譯文件如何反復 發布:2025-08-12 03:47:17 瀏覽:819
wog二追腳本 發布:2025-08-12 03:39:23 瀏覽:667
少兒編程教育培訓機構 發布:2025-08-12 03:37:55 瀏覽:670