Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将函数从Oracle转换为Postgres?_Sql_Database_Oracle_Postgresql - Fatal编程技术网

Sql 如何将函数从Oracle转换为Postgres?

Sql 如何将函数从Oracle转换为Postgres?,sql,database,oracle,postgresql,Sql,Database,Oracle,Postgresql,我在Oracle中有以下表和类型: CREATE OR REPLACE TYPE edificioty AS OBJECT( idf INT) CREATE OR REPLACE TYPE lettorety AS OBJECT( pidreader_id NUMBER, descrizione VARCHAR2(100), edificio REF edificioty) CREATE TABLE EDIFICIO OF EDIFICIOTY(IDF PRIMARY KEY); CRE

我在Oracle中有以下表和类型:

CREATE OR REPLACE TYPE edificioty AS OBJECT(
 idf INT)

CREATE OR REPLACE TYPE lettorety AS OBJECT(
pidreader_id NUMBER,
descrizione VARCHAR2(100),
edificio REF edificioty)

CREATE TABLE EDIFICIO OF EDIFICIOTY(IDF PRIMARY KEY);

CREATE TABLE LETTORE OF LETTORETY(PIDREADER_ID PRIMARY KEY);
我需要在PostreSQL中使用它们,因此我将它们转换为以下内容(希望它们是正确的):

还有这个Oracle函数

create or replace procedure populate_lettore
as
    edificio_selezionato ref edificioty;
    cursor c is select ref(e) from edificio e;
begin
    open c;
    loop
        fetch c into edificio_selezionato;
        exit when c%notfound;

        insert into lettore 
        values(lettorety(0,'Descrizione...',edificio_selezionato));
    end loop;
    close c;
end;

如何将其转换为Postgres?

您转换的代码无效。请阅读postgres文档(在线免费提供),了解如何创建类型、表和函数。为什么说它无效?我已经运行了它,它运行正常。您是否创建了自己的名为“number”和“varchar2”的类型?因为他们不存在于博士后。你说得对!由于复制和粘贴,出现了一些错误。我修正了它们。@blue phoenox在堆栈上,我觉得有些时候,人们投票反对比投票支持更容易相处。就像他们来这里只是为了投反对票。。即使他们对某人没有任何有意义的全力支持,但他们向那些有支持的人表示了自己的支持。很奇怪,不是吗。
create or replace procedure populate_lettore
as
    edificio_selezionato ref edificioty;
    cursor c is select ref(e) from edificio e;
begin
    open c;
    loop
        fetch c into edificio_selezionato;
        exit when c%notfound;

        insert into lettore 
        values(lettorety(0,'Descrizione...',edificio_selezionato));
    end loop;
    close c;
end;