Sql 如何将函数从Oracle转换为Postgres?
我在Oracle中有以下表和类型: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
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;