Não existe uma forma de executar comandos ou scripts PL/PgSQL no console, sem a necessidade de compilar na base de dados na forma de uma Function? Talvez no formato $$ DECLARE BEGIN EXCEPTION END; $$ LANGUAGE plpgsql;
Alguma sugestão? Obrigado, Artur Sampaio ----- Original Message ----- From: "Osvaldo Rosario Kussama" <[EMAIL PROTECTED]> To: "Comunidade PostgreSQL Brasileira" <[email protected]> Sent: Wednesday, June 11, 2008 3:19 PM Subject: Re: [pgbr-geral] Script à prova de falhas. Herick Marques escreveu: > Ribamar Sousa escreveu: >> 2008/6/11 Herick Marques <[EMAIL PROTECTED] >> <mailto:[EMAIL PROTECTED]>>: >> >> Evandro Ricardo Silvestre escreveu: >> > Herick Marques wrote: >> > >> Olá Evandro, obrigado pela ajuda, mas o problema continua. >> Usei o script que vc me passou fiz a alteração necessária, mas ele >> não >> executa no console do PG. >> usei o seguinte script: >> SELECT a.relname AS Tabela, b.attname AS Campo >> FROM pg_class a >> JOIN pg_attribute b ON (b.attrelid = a.relfilenode) >> WHERE b.attstattarget = -1 AND >> a.relname = 'allst' AND b.attname = 'blocker'; >> IF NOT FOUND THEN >> ALTER TABLE allst ADD blocker BOOLEAN NOT NULL >> END IF; >> >> O console dá o seguinte erro: >> ERROR: syntaxe error at or near "IF" SLQ state: 42601 Character: 218 >> >> Sabe me dizer se eu preciso passar mais algum comando, tipo um >> execute, >> ou colocar o script dentro de um begin/end, etc? >> Obrigado! >> >> >> No alter table deve ser assim: >> >> ALTER TABLE allst ADD COLUMN blocker BOOLEAN NOT NULL >> >> > Amigo, o problema não ocorre no script que faz a criação/ alteração da > tabela, está ocorrendo na cláusula de verificação. O IF não é um comando SQL. Para os comandos SQL válidos veja: http://www.postgresql.org/docs/current/interactive/sql-commands.html > Esse Alter Table, tato da maneira como eu tinha colocado como dessa que > vc me passou funcionou, o problema continua sendo a verificação da > existência. > Criar uma SP eu acho desnecessário pois esse script vai ser executado > poucas vezes, só quando as bases de clientes sofrerem atualização, e aí > está a razão de eu não querer que apareça mensagem de erro. Se você quizer executar um comando restrito à PL/PgSQL então a criação de uma função não é *desnecessária*. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
