台灣最大程式設計社群網站
線上人數
1627
 
會員總數:246145
討論主題:189731
歡迎您免費加入會員
討論區列表 >> Oracle >> where條件用變數,語法問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
where條件用變數,語法問題
價值 : 100 QP  點閱數:3859 回應數:4
樓主

flora
初學者
37 42
1004 62
發送站內信

各位大大,請問一個語法
我想要找到A TABLE中最大的日期,然後先放在參數SN中
然後再依SN的日期抓 B TABLE中的資料,我的語法如下,但都會卡在第4行
出現:在此select敘述句中預期會出現一個into子句
若沒有第4行,sn 是會有最大日期的值,應該要怎麼改才是ok的?

declare sn varchar2(8) :='00000000';
begin
select max(prcs_dt) into sn FROM A;
select * FROM B WHERE PRCS_DT = sn;
end;

搜尋相關Tags的文章: [ 變數 ] , [ oracle ] ,
本篇文章發表於2012-01-11 15:49
1樓
不錯的參考

花旗蔘
檢舉此回應
http://www.blueshop.com.tw/board/FUM200410061527578K1/BRD20100225120433PN0.html
http://www.blueshop.com.tw/board/FUM200410061527578K1/BRD20110426163845J7A.html
本篇文章回覆於2012-01-12 14:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

fantasy
捐贈 VP 給 fantasy 檢舉此回應
這應該直接用SQL就可以了(Subquery)...


本篇文章回覆於2012-01-13 09:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

郭郭
檢舉此回應
依照上面大大的方法就可以執行了,
讓SQL自己去做子查詢,不需要再丟到SN參數
推~
本篇文章回覆於2012-02-22 08:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

等等
檢舉此回應
就像第4行 select max(prcs_dt) into sn FROM A 一樣
select * FROM B WHERE PRCS_DT = sn 只要改成 select * into XXXX(一個宣告的變數) FROM B WHERE PRCS_DT = sn 就可以了,這樣從B table查詢出的資料才可以透過變數被使用(計算、顯示...),但若回傳的不只一個欄位或不只一筆,就要注意變數的型態,建議不要用 select * ,可改為 select column_name1,column_name2...,直接 select 需要的欄位,再宣告相對應的變數。
本篇文章回覆於2012-02-29 23:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.