通過資料視窗,我洗掉了一個記錄,比如id=12,該記錄在洗掉緩沖區中,現在我想洗掉與id=12相關的一些記錄,比如id=121,id=122,id=1211,id=1221等相關的一些記錄,也就是oracle資料庫表中id前半部分和已洗掉id相同的記錄。應該怎么做呢??
uj5u.com熱心網友回復:
寫嵌入式sql代碼洗掉啊,用通配符%做這事。
比如:
delete from 表
where id like '12%'
uj5u.com熱心網友回復:
不行的哈,因為不一定是洗掉12%,也有可能是13%,112%,等等,已經洗掉的id是存在一個變數里邊的,不是固定的
uj5u.com熱心網友回復:
那還不簡單,這么搞,看代碼:string ls_id
//這里你要給id賦值
ls_id = "12"
ls_id += "12" + "%"
delete from 表 where id like :ls_id using sqlca;
uj5u.com熱心網友回復:
看看3樓的吧 即使是變數 也能加通配符的
uj5u.com熱心網友回復:
那還不簡單,這么搞,看代碼:
string ls_id
//這里你要給id賦值
ls_id = "12"
ls_id += "12" + "%"
delete from 表 where id like :ls_id using sqlca;
要是他的ID欄位不是字串型別呢?
uj5u.com熱心網友回復:
如果你的ID欄位字符型別的話
string ls_id
ls_id = '12'
ls_id = ls_id + '%'
delete table where id like :ls_id ;
如果ID欄位不是字符型別,就用轉換吧
string ls_id
ls_id = '12'
ls_id = ls_id + '%'
delete table where to_char(id) like :ls_id ;
還沒能達到你的要求的話,你就使用PB的動態SQL陳述句吧
STRING lsSQL, ls_id
ls_id = '12'
LsSQL="DELETE table where id like '"+ls_id+'%'"
EXECUTE IMMEDIATE:lsSQL;
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/51073.html
標籤:數據庫相關
下一篇:PB9.0資料庫連接問題
