1.由於專案不涉及儲存過程,但是又想實現業務模組動態配置;
2.為了與專案協調所以就換一種實現方案。
3.由於專案框架是封裝的,所以必須遮蔽封裝,以最原始的sql動態拼接。
第一步是把封裝的sql 查詢字段儲存到資料庫。
第二步把查詢欄位用單組函式查詢出來如下。
資料庫字段
-------me_value------------------------------
recm.sub_contract_name as namedd
recm.account_code as ss
recm.face_amount as amt
select (wmsys.wm_concat(me_value)) as me_value from sino_contract_con;
查詢結果recm.sub_contract_name as namedd,recm.account_code as ss,recm.face_amount as amt
第三步查詢出來的結果作為將要查詢的字段,拼接到要查詢的sql中,當然這裡用到的是如下:
preparedstatement ps = connection.preparestatement(sql);
resultset rs = ps.executequery();
while(rs.next())
以此說明一點,最原始的往往是最有效的。
[code: 904, sql state: 42000] ora-00904: "wm_concat": 識別符號無效 解決辦
動態SQL解析方案
b 現在一套資料,大概如下 b 簡單的 select from where a a 複雜點的 select from where xx xx xx a,xx,xx xx b 如果頁面傳送過來有 a 這個引數值,例如 1 解析到如下 b select from where a a 複雜的類似 b 如果...
mysql 動態sql實現
需求為 表中有x列 500列 所有的資料都為0 false 和1 true 要求統計出其中有x 200 個true的總行數 資料庫層面實現 說明 不建議用這種,主要是為了記錄動態sql和處理思路.表結構 create table test2 id tinyint 4 default 0,id1 ti...
sql業務分割
create function strtotable str varchar 1000 returns tablename table str2table varchar 50 as 該函式用於把乙個用逗號分隔的多個資料字串變成乙個表的一列,例如字串 1,2,3,4,5 將程式設計乙個表,這個表 b...