DB2中sql語句佔位符問題

2022-07-20 12:18:10 字數 993 閱讀 2311

初到公司實習,讓做乙個**,使用struts2+spring框架,資料庫使用的是db2,以前沒接觸過db2,對它不了解。在寫sql語句的時候遇到一些問題,首先就是在mysql下的limit到了db2中需要改成fetch first 數字 rows only的形式。還有是在使用spring的jdbctemplate進行查詢時sql語句佔位符的問題,在where語句中使用"?"佔位符是沒有問題的,但是在這之外使用"?"佔位符就會出現問題。

sql如下:

select

user_name

,pic_url,county_name,star_rank,new_busi_rank,redeem_rank,popular_rank

from tf_servstar_rank_detail as

a,tf_servstar_race_user asb

where b.user_type = ? and a.boss_id =

b.boss_id

order

by ? desc

fetch first ? rows only

這樣執行時會報錯,提示佔位符「?」是非法字元。在網上查了資料,說在where語句之外的地方需要使用類似cast(? as varchar(8))

的形式來顯式的轉換為指定型別,但是我給"limit"的整數使用 cast(? as integer)的形式時還是會報錯。由於我對db2不熟,也沒找到解決的辦法,最後只能使用拼接字串的形式將整數傳過去。

去到公司才知道自己在學校學的知識基本沒用額,雖然自己也自學了ssh2等開源框架,但是由於平時練習的不夠,很多知識都記不太清除了,導致我的開發速度很慢.....還有就是資料方面的知識,由於經驗少,寫的sql效率都不高,平時自己也只是用用mysql,去到公司發現都是使用的oracle和db2。希望在公司實習的這幾個月能夠提公升自己的能力,就要畢業了,我選擇了實習而不是培訓,就是想到企業中去接觸一下真實的專案開發流程,積累一些開發經驗,所以越是困難的問題,我就應該越是認真的攻克它!

DB2 監控動態SQL語句

一 db2監控動態sql 快照監控 db2示例使用者登陸後,使用指令碼語句db2 get snapshot for all ondbname snap.out 也可以使用db2 get snapshot for dynamic sql ondbname snap.out,此語句是只記錄上一語句中的部...

跟蹤DB2的sql語句

查到了以下資料 修改一下db zhang的建議.db2 update monitor switches using bufferpool lock sort statement table timestamp uow on是基於程序 除此之外還可以更改dbm引數 會影響效能 dft mon bufp...

DB2 用到的基本SQL語句

匯出某個資料庫中的user表的資料 export to e date user.ixf of ixf messages e date user.out select from db2admin.user匯入到某個庫中user表的資料 首先建立同樣的一張user表,然後進行匯入 import from...