我现在透明网关已经配置好。工具用的是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的用法!