は私がPostgreSQLでテーブルとユーザ定義レコードを作成するには?
create table x(
x_id number,
x_description VARCHAR2(40),
x_date DATE
)
は、例えば、X名のPL/SQLテーブルは、それぞれ数や文字データや日付を保存する3つの列、でデータベーステーブルとしてモデル化されているOracleには、次の表を持っています。 SQL文を使用してPL/SQL表を操作することはできませんが、主キーは行に配列のようなアクセスを提供します。
declare
type tab_x is table of x%rowtype;
row x%rowtype;
list tab_x;
begin
begin
list.delete;
exception
when collection_is_null then
list := tab_x();
end;
row.observacion := 'Jorge';
row.numero := '1';
row.fch_ins := sysdate;
list.extend;
list(list.last) := row;
row.observacion := 'Andrea';
row.numero := '2';
row.fch_ins := sysdate;
list.extend;
list(list.last) := row;
row.observacion := 'Jose';
row.numero := '3';
row.fch_ins := sysdate;
list.extend;
list(list.last) := row;
row.observacion := 'Lucas';
row.numero := '4';
row.fch_ins := sysdate;
list.extend;
list(list.last) := row;
for i in list.first .. list.last loop
row := list(i);
dbms_output.put_line(row.x_id ||' - '|| row.x_description ||' - '|| row.x_date);
end loop;
end;
出力:
1 - ホルヘ - 13/12/16
2 - ホセ - 13/12/16
3 - アンドレア - 13/12/16
4 - Lucas - 13/12/16
私はこれをPostgreSQLでどうやって行うことができますか?
それとも、あなたは 'RETURNSのSETOFのX '(またはそれ以上の明示的/カスタムを使用することができます'RETURNS TABLE')&[' RETURN NEXT'/'RETURN QUERY']で一時テーブルを避けることができます(https://www.postgresql.org/docs/9.6/static/plpgsql-control-structures.html#AEN65553) – pozs