[問題] 使用SQL Like條件錯誤...

看板C_and_CPP作者 (經濟不景氣,好景不常在)時間12年前 (2012/09/07 14:17), 編輯推噓5(5012)
留言17則, 5人參與, 最新討論串1/1
大家晚安,今天在寫程式時遇到一個問題.. 我使用MFC架構,用OO4O元件撈ORACLE內的資料.. 當我下SQL指令時,卻回應找不到資料。 但是我把寫的那串SQL 透過PL/SQL找尋卻是有的資料= = 因為第一次使用LIKE篩選資料,不曉得是不是我的語法有錯呢?? 我在猜測可能是LIKE的地方有錯。 麻煩各位指點了@@ 以下我做斷行可能看得比較清楚。 CString OracleCmd; OracleCmd.Format("  SELECT M.MAC_NO,M.MACHINE_TYPE,M.ORDER_NUMBER,M.CUSTOMER_NUMBER,      M.PACKAGE_NAME,M.BD,G.WIRE_MAT,G.GAS_TYPE  FROM MAC_M M,MAC_M_GAS G  WHERE M.MAC_NO=G.MAC_NO AND M.STATUS_CODE LIKE 'E%'"); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.194.190 ※ 編輯: KSmart 來自: 118.171.194.190 (09/07 22:18)

09/07 23:27, , 1F
跳脫字母
09/07 23:27, 1F

09/07 23:27, , 2F
跳脫字元 'E%'
09/07 23:27, 2F

09/08 00:11, , 3F
我有試著改成'E%%',前面一個%作為跳脫字元,仍然無資料...
09/08 00:11, 3F

09/08 00:14, , 4F
\'E%\'
09/08 00:14, 4F

09/08 00:20, , 5F
改成\'E%\'變成語法錯誤@@
09/08 00:20, 5F

09/08 01:05, , 6F
\"E%\"看看
09/08 01:05, 6F

09/08 01:25, , 7F
單引號超冏 ’”'"`‘ 好吧打不出來= =
09/08 01:25, 7F

09/08 01:53, , 8F
怎麼都在瞎子摸象…這是美德嗎? >(=)
09/08 01:53, 8F

09/08 01:53, , 9F

09/08 01:54, , 10F
第一個連結就是ORACLE的%字元跳脫方法,附範例!
09/08 01:54, 10F

09/08 02:04, , 11F
受教了
09/08 02:04, 11F

09/08 15:03, , 12F
也就是在Orchle是'E\%',有三個字完要跳脫成 \'E\\%\'
09/08 15:03, 12F

09/08 21:34, , 13F
喔,對,因為是在C裡面用所以 \ 會需要escape成 \\
09/08 21:34, 13F

09/08 21:49, , 14F
我以為 '%' 是 '%%' , 不是 '\%' , C 裡書上的跳脫字不含%
09/08 21:49, 14F

09/08 23:08, , 15F
可那裡面是SQL LIKE的regex,用 % 代表一般regex的 *。
09/08 23:08, 15F

09/09 01:50, , 16F
原來如此,感謝 M 大 :)
09/09 01:50, 16F

09/09 01:59, , 17F
(我原意是改s~大的,'E\%'→ \'E\\%%\' ,C的%也要處理 )
09/09 01:59, 17F
文章代碼(AID): #1GIW8AMs (C_and_CPP)