简体   繁体   English

修改从 ORACLE 到 PG 的 refcursor 得到错误<unnamed portal 1> ?</unnamed>

[英]Modifying a refcursor from ORACLE TO PG getting error <unnamed portal 1>?

FUNCTION default_refcursor
  RETURN SYS_REFCURSOR
AS
  v_refcursor SYS_REFCURSOR;
BEGIN
   OPEN v_refcursor FOR
       SELECT * FROM DUAL WHERE 1 = 2;
   RETURN v_refcursor;
END default_refcursor;

the above is cursor from oracle which I have to convert into PostgreSQL (below)以上是 cursor 来自 oracle 我必须将其转换为 PostgreSQL (下)

CREATE OR REPLACE FUNCTION prod.common_func_sql$default_refcursor()
RETURNS REFCURSOR
AS
$BODY$
DECLARE
    v_refcursor REFCURSOR;
    v_refcursor$ATTRIBUTES aws_oracle_data.TCursorAttributes := ROW (FALSE, NULL, NULL, NULL);
BEGIN
    v_refcursor := NULL;
    OPEN v_refcursor FOR
           Select 1 where 1=2 ;
    v_refcursor$ATTRIBUTES := ROW (TRUE, 0, NULL, NULL);
    RETURN v_refcursor;
END;
$BODY$
LANGUAGE  plpgsql;

I am getting an error as <unnamed portal 1>.我收到了一个错误,因为 <未命名的门户 1>。 Can anyone highlight what changes are needed, please?任何人都可以强调需要哪些更改吗? The code mentioned in lower section is not working can someone give suggestions?下部提到的代码不起作用,有人可以提出建议吗?

That's not an error, it is the name PostgreSQL chose for the cursor.这不是错误,它是 PostgreSQL 为 cursor 选择的名称。 If you want a different one, change the line如果你想要一个不同的,改变行

v_refcursor := NULL;

to

v_refcursor := 'mycursor';

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM