我现在透明网关已经配置好。工具用的是pl/sql developer
我现在有一个在sql下的表要实时备份到oracle下。我在oracle下写了一个过程。其中有一个游标
create or replace procedure Get_UnicomFeeLog is
CURSOR c_Fee_logAll IS
SELECT *
FROM [email protected] t
WHERE t."saveflag" = '1'
and rownum <= 10
FOR UPDATE OF t."saveflag";
BEGIN
FOR v_FeeLogRec IN c_Fee_logAll LOOP
INSERT INTO CTIVR_FEE_LOG
(LOGDT,
Service_Id,
Service_Name,
Callingnumber,
Province,
City,
CalledNumber,
Begin_Time,
END_TIME,
Use_Time,
Use_Fee,
Flag)
VALUES
(v_FeeLogRec."logdate",
v_FeeLogRec."service_id",
v_FeeLogRec."service_name",
v_FeeLogRec."callernumber",
v_FeeLogRec."province",
v_FeeLogRec."city",
v_FeeLogRec."callednumber",
v_FeeLogRec."begintime",
v_FeeLogRec."endtime",
v_FeeLogRec."usetime",
v_FeeLogRec."usefee",
v_FeeLogRec."saveflag");
UPDATE [email protected] t
SET t."saveflag" = '0'
WHERE CURRENT OF c_Fee_logAll;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
ROLLBACK;
END Get_UnicomFeeLog;这个过程本身应该是没问题的。一起在oracle之间用没有问题。
现在我执行这个过程就会报错:ORA-02070: 数据库 UNICOM 不支持此上下文中的 ROWNUM
但是我如果在sql窗口中执行
SELECT *
FROM [email protected] t
WHERE t."saveflag" = '1'
and rownum <= 10
是没有问题的数据都是正确的。
请高人指点rownum和rowids的用法!
我现在有一个在sql下的表要实时备份到oracle下。我在oracle下写了一个过程。其中有一个游标
create or replace procedure Get_UnicomFeeLog is
CURSOR c_Fee_logAll IS
SELECT *
FROM [email protected] t
WHERE t."saveflag" = '1'
and rownum <= 10
FOR UPDATE OF t."saveflag";
BEGIN
FOR v_FeeLogRec IN c_Fee_logAll LOOP
INSERT INTO CTIVR_FEE_LOG
(LOGDT,
Service_Id,
Service_Name,
Callingnumber,
Province,
City,
CalledNumber,
Begin_Time,
END_TIME,
Use_Time,
Use_Fee,
Flag)
VALUES
(v_FeeLogRec."logdate",
v_FeeLogRec."service_id",
v_FeeLogRec."service_name",
v_FeeLogRec."callernumber",
v_FeeLogRec."province",
v_FeeLogRec."city",
v_FeeLogRec."callednumber",
v_FeeLogRec."begintime",
v_FeeLogRec."endtime",
v_FeeLogRec."usetime",
v_FeeLogRec."usefee",
v_FeeLogRec."saveflag");
UPDATE [email protected] t
SET t."saveflag" = '0'
WHERE CURRENT OF c_Fee_logAll;
END LOOP;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(sqlerrm);
ROLLBACK;
END Get_UnicomFeeLog;这个过程本身应该是没问题的。一起在oracle之间用没有问题。
现在我执行这个过程就会报错:ORA-02070: 数据库 UNICOM 不支持此上下文中的 ROWNUM
但是我如果在sql窗口中执行
SELECT *
FROM [email protected] t
WHERE t."saveflag" = '1'
and rownum <= 10
是没有问题的数据都是正确的。
请高人指点rownum和rowids的用法!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货