SELECT * FROM 表ALEFT JOIN T_表B ON 表A.ID=表B.AI AND 表B.字段B=:變量1WHERE 表A.字段A LIKE :變量2 AND 表A.字段B = :變量1odbc cmd.Parameters.Add 賦值問題cmd.Parameters.Add("變量1", 數據類型).Value = 值1;cmd.Parameters.Add("變量2", 數據類型).Value = 值2;執行錯誤信息:并非所有變量都所有變量都已綁定如 :變量1 不多次出現則正常運行
2 回答

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
cmd.Parameters.Add("變量1", 數據類型).Value = 值1;
這樣ORACLE不會幫你把所有命名為"變量1”的綁定變量都賦值的。
假使語句為:
select * from A where b=:M and c=:M and d=:N 經過ORACLE解析后就成了 select * from A where b=:1 and c=:2 and d=:3
這樣就需要給 綁定變量 1,2,3賦值。除非你在存儲過程里面寫。不然系統不會識別綁定變量名(就是個虛擬的而已)。
所以這種情況你需要
cmd.Parameters.Add("M", 數據類型).Value = 值1;
cmd.Parameters.Add("M", 數據類型).Value = 值1;
cmd.Parameters.Add("N", 數據類型).Value = 值2;
這樣就不會報錯。
有什么不理解的可以再問我。

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
SELECT * FROM 表A
LEFT JOIN T_表B ON 表A.ID=表B.AI AND 表B.字段B = 變量1
WHERE 表A.字段A LIKE :變量2 AND 表A.字段B = 變量1
直接等于,這里不用冒號。單個變量賦值需 “ := ” 這樣的。
- 2 回答
- 0 關注
- 780 瀏覽
添加回答
舉報
0/150
提交
取消