Ⅰ 求判斷存儲過程這么寫是否正確.
先鎖表試試LOCK TABLES aa1 WRITE;START TRANSACTION;你的sql語句;UNLOCK TABLES;
Ⅱ SQL 存儲過程 判斷星期
DECLARE @WeekNum VARCHAR --今天星期幾
就這句,varchar你沒定義長度,默認為1,漢字的話連1個長度都不顯示了
改成
DECLARE@WeekNumVARCHAR(10)
Ⅲ 如何檢測被鎖住的Oracle存儲過程
你是要找到被鎖住的存儲過程,還是要看存儲過程是那部分執行慢,導致過程被鎖住時間長。
如果是前者,那麼oracle有個視圖
v$locked_object和DBA_DML_LOCKS,這個能看出被鎖的object都有哪些是哪個session鎖的。
然後可以通過這個session_id找到相應的語句,找到語句後,就能知道是哪部分語句執行的時間較長了。
Ⅳ 如何判斷存儲過程是否存在在存儲過程
----sqlserver判斷
if (exists (select * from sys.objects where name = '存儲過程名稱'))
drop proc proc_test
go
create.....
----oracle判斷
select status from all_objects where object_type = 'PROCEDURE' and OWNER='用戶名' and object_name='存儲過程名';
or
select status from user_objects where object_type = 'PROCEDURE' and object_name='存儲過程名';
Ⅳ 幫忙檢查存儲過程
1、可能是錯在 【from ('+@str+')】這個上面了,【('+@str+')】這個應該是個子查詢吧,我經常遇到子查詢的時候如果子查詢沒有起名字,就會報錯。
2、改成下面這樣試試:【from ('+@str+') as temp】
---
以上,希望對你有所幫助。
Ⅵ 存儲過程判斷
create procere procName
@id int
as
if(exists(select * from tableName where id=@id))
begin
update tableName
set columnName='value'
end
else
begin
insert into tableName
values('values1','values2')
end
打字不易,如滿意,望採納。
Ⅶ 判斷存儲過程是否存在
----sqlserver判斷
if(exists(select*fromsys.objectswherename='存儲過程名稱'))
dropprocproc_test
go
create.....
----oracle判斷
selectstatusfromall_objectswhereobject_type='PROCEDURE'andOWNER='用戶名'andobject_name='存儲過程名';
or
selectstatusfromuser_objectswhereobject_type='PROCEDURE'andobject_name='存儲過程名';
有問題再追問。
Ⅷ oracle存儲過程檢查數
createorreplaceprocerep_add
is
p_cntnumber;
begin
selectcount(1)intop_cntfromAAA;
ifp_cnt=0then
insertintoAAAselect*fromAAA_tmp;
commit;
endif;
end;
Ⅸ 存儲過程怎麼判斷執行成功
這個分兩種情況:
由於存儲過程是資料庫自身的東西,JAVA只是調用
所以,如果是語法上的錯誤 sql直接不能執行 , JAVA確實能接收到異常
但是如果語法沒有錯誤, 只是你寫的條件錯了, sql能執行,只是沒有得到你想要的效果, 這個情況, 是判斷不了的, 都會視為成功執行
如果 sql = "select from aaa where id > 10" 這直接是語法 錯誤,肯定報錯
但 如果 sql = "update aaa set name = 'aaa' where id='123' "; 沒有語法 錯誤 ,能執行, 只是沒有id = 123的數據, 你要改124的,錯寫成123了, 就修改不了, 但也不會報任何錯 北京科蘭
Ⅹ 存儲過程判斷問題
UPATE xxx
SET
a=CASE WHEN(@a IS NULL) THEN a ELSE @a END,
b=CASE WHEN(@b IS NULL) THEN b ELSE @b END,
c=CASE WHEN(@c IS NULL) THEN c ELSE @c END,
d=CASE WHEN(@d IS NULL) THEN d ELSE @d END
WHER xxx