我是在实例为cwt3_taxi的库中写存储过程,创建一个游标,希望用这个游标查询实例是cwt3的库里的表,请问怎么做?cursor c is 
  select count(1) from cwt3.table1;这样是会报table1表或视图不存在的错误,在网上查说是用grant分配给权限,但具体代码在哪儿加,怎么加不知道。
请高人指教,不胜感激!

解决方案 »

  1.   

    grant select on cwt3.table1 to cwt3_taxi;但我认为你这样还是不成功,跨实例要建dblink,而且跨实例传递游标数据是不可以的,建议用对象表。
    参考代码如下:
       TYPE OT_EMoney_AccountInfo_TYPE is table of EMoney_AccountInfo_TYPE%rowtype;
       PROCEDURE up_QryAccountInfo(
    i_MEMID  IN  CHAR, --char(10)
    o_RetCode           OUT  INT, --0表示成功,其余为失败
            o_RetMsg            OUT  VARCHAR2, --varchar2(255) 错误信息
            o_RetCursor OUT OT_EMoney_AccountInfo_TYPE
    ) IS
    l_counter INT;
    l_Location VARCHAR2(128);
    l_proc  VARCHAR2 (128); --存储过程名
       l_level  VARCHAR2 (128); --错误级别
       l_RetCursor  SYS_REFCURSOR;
    BEGIN

    OPEN l_RetCursor FOR
    SELECT ...
    FROM t_test....
    WHERE ...
      
    FETCH l_RetCursor BULK COLLECT INTO o_RetCursor;
      
    ...

    EXCEPTION
         WHEN OTHERS THEN
             SELECT * FROM EMoney_AccountInfo_TYPE WHERE 1 = 2;
             FETCH l_RetCursor BULK COLLECT INTO o_RetCursor;
    END up_QryAccountInfo;