Alguém sabe como criar arrays de composite types?
Eu sei que o PG atualmente não suporta este tipo de construção, mas estava 
imaginando se alguém pode sugerir alguma forma de contornar isso.
Pretendo utilizar este array como parâmetro de entrada/saída em procedures.

Minha idéia é criar procedures que serão chamadas a partir de aplicações java 
(através de JDBC). Tais procedures devem manipular parâmetros de entrada/saída 
que sejam do tipo composite_type[].

Uma construção parecida, em Oracle, seria assim:

SQL:
CREATE OR REPLACE TYPE TESTOBJ AS OBJECT
(
  NAME VARCHAR2(100) ,
  AGE INTEGER,
  STATIC FUNCTION AUTOCREATE RETURN TESTOBJ
)

CREATE OR REPLACE TYPE BODY TESTOBJ AS
  STATIC FUNCTION AUTOCREATE RETURN TESTOBJ IS
    REC TESTOBJ;
  BEGIN
    REC := TESTOBJ(NULL, NULL);
    RETURN REC;
  END AUTOCREATE;
END;

CREATE OR REPLACE TYPE ARRAYTESTOBJ AS TABLE OF TESTOBJ

Java:
  stmt = conn.prepareCall("{ call PROC_TESTOBJ(?,?,?,?,?) }");
  stmt.setData(1, typeTestObj);
  stmt.registerOutputParameter(2, Types.ARRAY);
  stmt.execute;


Sem mais,


Artur Sampaio
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a