Olá, Emerson

CREATE TEMP TABLE tab_temp(codigo int PRIMARY KEY) WITH OIDS;

INSERT INTO tab_temp VALUES (1);

SELECT oid FROM pg_class WHERE relname='tab_temp';

SELECT tableoid FROM tab_temp LIMIT 1;

Ao você fazer o SELECT na pg_class você sempre terá o oid da tabela, seja
ela temporária ou permanente.

Se você fizer:

DROP TABLE tab_temp e novamente fizer:

CREATE TEMP TABLE tab_temp(codigo int PRIMARY KEY) WITH OIDS;

INSERT INTO tab_temp VALUES (1);

SELECT oid FROM pg_class WHERE relname='tab_temp';

SELECT tableoid FROM tab_temp LIMIT 1;

Você verá que será criado outro oid para a tabela temporária.

2009/6/10 emerson hermann <[email protected]>

> Ola Pessoal,
> Estou desenvolvendo uma store procedure que usa algumas tabelas
> temporarias criadas por outra store procedure, porem queria ter
> certeza de pegar a tabela temporaria correta.
>
> Como obter o OID da tabela temporaria no instante da criacao da mesma?
> Exemplo:
>
> CREATE TEMPORARY TABLE tb_temp01 (
>  id integer,
>  config varchar(200),
>  diretorio varchar(200)
> ) ON COMMIT PRESERVE ROWS;
>
> Tenho ciencia de que existe dessa forma porem funciona com linhas e
> nao com tabelas:
> CREATE TEMPORARY TABLE tb_temp01 (
>  id integer,
>  config varchar(200),
>  diretorio varchar(200)
> ) WITH OIDS
>  ON COMMIT PRESERVE ROWS;
>
> Usando o catalogo do postgres tenho essa informacao
> SELECT oid, * FROM pg_class WHERE relname = 'tb_temp01';
>
> Porem preciso do OID no momento da criacao da tabela, como fazer ?
>
>
> Desde ja agradeco.
>
> Cordialmente,
>
> Emerson Hermann
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>


[]s
-- 
JotaComm
http://jotacomm.wordpress.com
http://www.dextra.com.br/postgres
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a