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 ? >
Creio que existe uma pequena confusão com a cláusula WITH OIDS (ou WITH OIDS=TRUE). Esta cláusula se refere às *linhas* da tabela terem um oid atribuído a cada uma delas e não à tabela. A tabela sempre terá. Para obter o que deseja utilize o comando: SELECT oid FROM pg_class WHERE relname = 'tb_temp01'; logo após a criação da tabela (como você citou acima). Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
