如果非要这么写的话,建议增加排序缓冲区参数的值。
根本的解决办法是利用存储过程返回游标处理(我保证在1秒内返回结果)
给个例子
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
CREATE PROCEDURE sp_fauleinfo(pAgentID in varchar2,p_rc out pkg_test.myrctype)
AS
begin
open p_rc for 'Select Agent_id,Agent_name from failinfo where AgentID='||pAgentID;
end;
根本的解决办法是利用存储过程返回游标处理(我保证在1秒内返回结果)
给个例子
CREATE OR REPLACE PACKAGE pkg_test
AS
TYPE myrctype IS REF CURSOR;
END pkg_test;
/
CREATE PROCEDURE sp_fauleinfo(pAgentID in varchar2,p_rc out pkg_test.myrctype)
AS
begin
open p_rc for 'Select Agent_id,Agent_name from failinfo where AgentID='||pAgentID;
end;
要打PP要飞去印度打那几个最初设计数据库的印度软件工程硕士
结果如下
CREATE OR REPLACE VIEW VW_GUEST_BUSINESS AS
SELECT C.ROOM_NO, --房间号
c.ROOM_TYPE_ID,
E.RESV_SHARE_WITH_ID,
E.NAME AS GUEST_NAME, --客人名
H.GROUP_NAME ,
L.NAME AS BUSINESS_NAME, --旅行社或者公司MINGZI
L.business_id,
E.GUEST_STATUS_ID,
C.NO_OF_NIGHTS, --入住天数
E.ACT_ARRIVAL_DATE,
E.ARRIVAL_DATE,
E.ACT_DEPART_DATE,
E.DEPART_DATE,
E.GROUP_ID,
J.BUSINESS_CAT_ID, --商务分类(是公司还是旅行社)
SUM(DECODE(SUBSTR(A.CHARGE_CODE_ID, 0, 2),
'10',
nvl(F.AMOUNT,0) + nvl(g.TAX_AMOUNT,0) ,
0)
) AS RMRATEAMOUNT, --总房费
SUM(nvl(F.AMOUNT,0) + nvl(g.TAX_AMOUNT,0) ) AS EPAMOUNT, --总消费(包括房费)
E.IS_GROUP_MASTER, --是否团体主单
K.RATE, --房价
K.RATE_CODE_ID --房价代码
FROM VW_TRANSACTION_MASTER A,
VW_RESERVATION C,
VW_RESV_SHARE_WITH_JOIN D,
VW_RESV_SHARE_WITH E,
VW_TRANSACTION_SEQ F,
(SELECT TRANSACTION_SEQ_ID, SUM(NVL(AMOUNT,0)) TAX_AMOUNT
FROM vw_TRANSACTION_TAX_JOIN
WHERE TO_RESV_SHARE_WITH_ID IS NULL
GROUP BY TRANSACTION_SEQ_ID) G,
VW_GROUP_MASTER H,
CHARGE_CODE I,
VW_RESV_BUSINESS J,
(SELECT A.RATE_CODE_ID,A.RATE,A.RESV_SHARE_WITH_ID,TO_CHAR(MAX(TO_DATE(A.END_DATE,'DD/MM/YYYY')),'DD/MM/YYYY')
FROM vw_resv_rate_plan A GROUP BY A.resv_share_with_ID,A.RATE_CODE_ID,A.RATE)
K,
BUSINESS_MASTER L,
room_TYPE_master M
WHERE L.BUSINESS_ID = J.BUSINESS_ID AND
j.RESV_BUSINESS_ID = e.RESV_BUSINESS_ID AND
D.RESV_ID = C.RESV_ID AND
E.RESV_SHARE_WITH_ID = D.RESV_SHARE_WITH_ID AND
E.GROUP_ID = H.GROUP_ID(+) AND
C.ROOM_TYPE_ID = M.room_type_id AND
M.function_guest_dummY='G' AND
E.RESV_SHARE_WITH_ID = F.RESV_SHARE_WITH_ID(+) AND
(F.TRANSACTION_ID IS NULL OR (F.TRANSACTION_ID = A.TRANSACTION_ID)) and
F.TRANSACTION_SEQ_ID = G.TRANSACTION_SEQ_ID(+) AND
(I.CHARGE_CODE_ID = A.CHARGE_CODE_ID OR
A.TRANSACTION_ID IS NULL) AND
e.RESV_SHARE_WITH_ID = k.RESV_SHARE_WITH_ID and
NVL(F.IS_MERGE, 'N') <> 'Y' AND NVL(I.IS_PAYMENT, 'N') <> 'Y' AND
NVL(I.IS_AR, 'N') <> 'Y'
GROUP BY C.ROOM_NO,
c.ROOM_TYPE_ID,
E.RESV_SHARE_WITH_ID,
E.NAME,
E.GUEST_STATUS_ID,
E.ARRIVAL_DATE,
E.ACT_ARRIVAL_DATE,
E.ACT_DEPART_DATE,
E.DEPART_DATE,
E.GROUP_ID,
H.GROUP_NAME,
E.IS_GROUP_MASTER,
J.BUSINESS_CAT_ID,
C.NO_OF_NIGHTS,
L.NAME,
L.business_id ,
K.RATE, --房价
K.RATE_CODE_ID
UNION ALL
SELECT '', --房间号
K.ROOM_TYPE_ID,
E.RESV_SHARE_WITH_ID,
E.NAME AS GUEST_NAME, --客人名
H.GROUP_NAME ,
L.NAME AS BUSINESS_NAME, --旅行社或者公司MINGZI
L.business_id,
E.GUEST_STATUS_ID,
0, --入住天数
E.ACT_ARRIVAL_DATE,
E.ARRIVAL_DATE,
E.ACT_DEPART_DATE,
E.DEPART_DATE,
E.GROUP_ID,
J.BUSINESS_CAT_ID, --商务分类(是公司还是旅行社)
SUM(DECODE(SUBSTR(A.CHARGE_CODE_ID, 0, 2),
'10',
nvl(F.AMOUNT,0) + nvl(g.TAX_AMOUNT,0) ,
0)
) AS RMRATEAMOUNT, --总房费
SUM(nvl(F.AMOUNT,0) + nvl(g.TAX_AMOUNT,0) ) AS EPAMOUNT, --总消费(包括房费)
E.IS_GROUP_MASTER, --是否团体主单
K.RATE, --房价
K.RATE_CODE_ID --房价代码
FROM VW_TRANSACTION_MASTER A,
VW_RESV_SHARE_WITH E,
VW_TRANSACTION_SEQ F,
(SELECT TRANSACTION_SEQ_ID, SUM(NVL(AMOUNT,0)) TAX_AMOUNT
FROM vw_TRANSACTION_TAX_JOIN
WHERE TO_RESV_SHARE_WITH_ID IS NULL
GROUP BY TRANSACTION_SEQ_ID) G,
VW_GROUP_MASTER H,
CHARGE_CODE I,
VW_RESV_BUSINESS J,
vw_grproom_type_rate_plan_join K,
BUSINESS_MASTER L
WHERE L.BUSINESS_ID = J.BUSINESS_ID AND
j.RESV_BUSINESS_ID = e.RESV_BUSINESS_ID AND
E.RESV_SHARE_WITH_ID = H.RESV_SHARE_WITH_ID(+) AND
E.RESV_SHARE_WITH_ID = F.RESV_SHARE_WITH_ID(+) AND
(F.TRANSACTION_ID IS NULL OR (F.TRANSACTION_ID = A.TRANSACTION_ID)) and
F.TRANSACTION_SEQ_ID = G.TRANSACTION_SEQ_ID(+) AND
(I.CHARGE_CODE_ID = A.CHARGE_CODE_ID OR
A.TRANSACTION_ID IS NULL) AND
NVL(F.IS_MERGE, 'N') <> 'Y' AND NVL(I.IS_PAYMENT, 'N') <> 'Y' AND
NVL(I.IS_AR, 'N') <> 'Y' and
H.GROUP_ID = k.GROUP_ID and
(nvl(e.ACT_DEPART_DATE,e.DEPART_DATE) = k.END_DATE )
GROUP BY E.RESV_SHARE_WITH_ID,
E.NAME,
E.GUEST_STATUS_ID,
E.ARRIVAL_DATE,
E.ACT_ARRIVAL_DATE,
E.ACT_DEPART_DATE,
E.DEPART_DATE,
E.GROUP_ID,
H.GROUP_NAME,
E.IS_GROUP_MASTER,
J.BUSINESS_CAT_ID,
L.NAME,
L.business_id ,
K.RATE, --房价
K.RATE_CODE_ID,
K.ROOM_TYPE_ID