首页 > 解决方案 > 将数据库 oracle 迁移到 postgresql:过程

问题描述

我们将把数据库从 Oracle 迁移到 PostgreSQL。

我是 PostgreSQL 的新手。我们有一个这样的程序:

CREATE OR REPLACE PROCEDURE USPX_TEST (NAME IN VARCHAR2,cb_results_cursor OUT SYS_REFCURSOR) IS
BEGIN
 OPEN cb_results_cursor FOR
          SELECT * FROM EMPLOYEES WHERE EMP_NAME = NAME;
END USPX_TEST;

请告诉我如何在 postgreSQL 中转换这个相同的过程。

注意:我们需要使用 out 参数在游标中返回结果

提前致谢...

标签: postgresqlplpgsql

解决方案


要在 Postgres 中返回结果,请使用函数,而不是过程:

CREATE OR REPLACE function USPX_TEST (NAME IN VARCHAR2)
  returns setof employees
as
$$
  SELECT * FROM EMPLOYEES WHERE EMP_NAME = NAME;
$$
language sql;

像桌子一样使用它:

select *
from USPX_TEST('Zaphod');

推荐阅读