實現動態SQL業務方案

2021-10-10 07:16:53 字數 792 閱讀 2663

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...