db2casewhen多個條件 DB2怎么執(zhí)行帶輸出參數(shù)的存儲過程?
DB2怎么執(zhí)行帶輸出參數(shù)的存儲過程?DB2不了解,說一下SQLServer的。SQLServer不支持以逗號隔開的多個IN條件的參數(shù)傳入,解決辦法是拼湊SQL腳本,最后用exec方法執(zhí)行這個腳本,如:
DB2怎么執(zhí)行帶輸出參數(shù)的存儲過程?
DB2不了解,說一下SQLServer的。SQLServer不支持以逗號隔開的多個IN條件的參數(shù)傳入,解決辦法是拼湊SQL腳本,最后用exec方法執(zhí)行這個腳本,如:DECLARE @sql nvarchar(500)DECLARE @inStr nvarchar(50)SET @inStr="""條件1"",""條件2"""--SELECT * FROM table WHERE field1 IN (@inStr)--出錯SET @sql="SELECT * FROM table WHERE field1 IN (" @inStr ")"--PRINT @sqlEXEC(@sql)
怎么編輯存儲過程的if,else?
Oracle是下面這種寫法:IFtestvalue>100THENdbms_output.put_line("100 ")ELSIFtestvalue=100THENdbms_output.put_line("100")ELSEdbms_output.put_line("100-")ENDIFDB2,MYSQL是下面這種寫法:(與Oracle區(qū)別在于那個ELSIF)IFp_val>100THENINSERTINTOoutput_debugVALUES("100 ")ELSEIFp_val=100THENINSERTINTOoutput_debugVALUES("100")ELSEINSERTINTOoutput_debugVALUES("100-")ENDIFSQLServer有些差別:IF@testvalue>100BEGINPRINT("100 ")ENDELSEIF@testvalue=100BEGINPRINT("100")ENDELSEBEGINPRINT("100-")END
DB2怎么控制對存儲過程的訪問權(quán)限?
DB2 文本搜索存儲過程的權(quán)限更改: 確保實例所有者同時具有 DBADM 和 DATAACCESS 權(quán)限。
從 V9.7 FP1 和更高版本的修訂包開始,具有 SECADM 權(quán)限的用戶可以在運(yùn)行 db2ts ENABLE DATABASE FOR TEXT 命令時通過指定 AUTOGRANT 選項來授予實例所有者必要的 DBADM 和 DATAACCESS 特權(quán)。在運(yùn)行 DB2 文本搜索命令或存儲過程之前,確保您具有適當(dāng)權(quán)限級別和特權(quán),并且對于所有 DB2 文本搜索存儲過程已將 EXECUTE 特權(quán)授予 PUBLIC。如何執(zhí)行db2存儲過程?
1、db2 create database 數(shù)據(jù)庫名 call 存儲過程名(參數(shù)1,參數(shù)2)5、驗證插入數(shù)據(jù)是否成功Windows 下:db2 select count(*) from FTOTP_USERINFOAIX 下:db2 select count(*) from FTOTP_USERINFOWindows 下:db2 select count(*) from FTOTP_TOKENINFOAIX 下:db2 select count(*) from FTOTP_TOKENINFO
如何執(zhí)行db2存儲過程?
1、db2 create database 數(shù)據(jù)庫名
2、db2 connect to 數(shù)據(jù)庫名 user 用戶名 using 用戶密碼
3、db2 -tvf otpdb_v3_db2.sql
4、db2 -td@ -f 存儲過程文件絕對路徑
4、調(diào)用存儲過程:
Windows 下:db2 call 存儲過程名(參數(shù)1,參數(shù)2)
AIX 下:db2
db2=>call 存儲過程名(參數(shù)1,參數(shù)2)
5、驗證插入數(shù)據(jù)是否成功
Windows 下:db2 select count(*) from FTOTP_USERINFO
AIX 下:db2
db2=>select count(*) from FTOTP_USERINFO
Windows 下:db2 select count(*) from FTOTP_TOKENINFO
AIX 下:db2
db2=>select count(*) from FTOTP_TOKENINFO