台灣最大程式設計社群網站
線上人數
1054
 
會員總數:239370
討論主題:185707
歡迎您免費加入會員
討論區列表 >> Oracle >> 如何在procedure中建立臨時用Table並回傳
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何在procedure中建立臨時用Table並回傳
價值 : 50 QP  點閱數:1013 回應數:1

樓主

無風起浪
門外漢
0 3
90 1
發送站內信

Dear all:
  小弟最近因業務需求,需修改前人之程式碼,由sql轉oracle,但小弟完全不會oracle
雖上網找過很多資料(依自己需求),卻無法解決問題,還請各位協助,感謝!
  問題如下
1.下列procedure接收外來參數進行查詢後須回傳查詢結果,並利用table方式回傳,但執行上有錯誤,還請各位指教!
2.IndexId int, --此處須根據資料量增加而自動累加1。要如何設定?


create or replace procedure LIMS.lims_SampleQuery
(
PLANT_UNIT in nvarchar2,
SAMPLE_STATUS in nvarchar2,
SAMPLE_TYPE in nvarchar2,
SampledDateBegin in date,
SampledDateEnd in date,
USERID in nvarchar2,
PageIndex in int,
PageSize in int
)
is
PageLowerBound int;
PageUpperBound int;
RowsToReturn int;
RowsCount int;

CREATE OR REPLACE TYPE PageIndexTable_o as Object
(
IndexId int, --此處須根據資料量增加而自動累加1
ID_NUMERIC nvarchar2(10),
ID_TEXT nvarchar2(30),
STATUS nvarchar2(1),
LOGIN_DATE date,
SAMPLED_DATE date,
SAMPLING_POINT nvarchar2(20),
SAMPLE_TYPE nvarchar2(10),
SAMPLE_NAME nvarchar2(30),
LOCATION_ID nvarchar2(10),
DATE_COMPLETED date
);
/

CREATE or replace type PageIndexTable_t AS table of PageIndexTable_o;
/

begin

SELECT PageIndexTable_o(A.ID_NUMERIC,A.ID_TEXT,A.STATUS,A.LOGIN_DATE,A.SAMPLED_DATE,A.SAMPLING_POINT,A.SAMPLE_TYPE,A.SAMPLE_NAME,A.LOCATION_ID,A.DATE_COMPLETED)
BULK COLLECT INTO PageIndexTable_t
FROM
(
SELECT LIMS.SAMPLE.SAMPLED_DATE
,LIMS.SAMPLE.ID_NUMERIC
,LIMS.SAMPLE.ID_TEXT
,LIMS.SAMPLE.LOGIN_DATE
,LIMS.SAMPLE.LOCATION_ID
,LIMS.SAMPLE.DATE_COMPLETED
,LIMS.SAMPLE.SAMPLING_POINT
,LIMS.SAMPLE.SAMPLE_NAME
,LIMS.SAMPLE.STATUS
,LIMS.SAMPLE.SAMPLE_TYPE

FROM LIMS.SAMPLE
WHERE LIMS.SAMPLE.SAMPLED_DATE Between SampledDateBegin AND SampledDateEnd
AND LIMS.SAMPLE.STATUS in (SAMPLE_STATUS)
AND LIMS.SAMPLE.SAMPLE_TYPE in (SAMPLE_TYPE)
AND LIMS.SAMPLE.LOCATION_ID in (PLANT_UNIT)
ORDER BY LIMS.SAMPLE.SAMPLED_DATE DESC, LIMS.SAMPLE.ID_NUMERIC DESC
) A;

end;





搜尋相關Tags的文章: [ procedure ] , [ 回傳table ] , [ 建立臨時table ] ,
本篇文章發表於2015-05-17 22:02
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
oracle並沒有支援類似的流水號欄位,用Sequence吧
本篇文章回覆於2015-09-04 10:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

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