dbandre29 0 Denunciar post Postado Outubro 4, 2005 DECLARE TOT NUMBER; BEGIN SELECT COUNT(*) TOTAL INTO TOT FROM TRUSTY_DB_PATCHES; IF TOT>0 THEN DBMS_OUTPUT.PUT_LINE ('********** POR FAVOR DELETE TODOS REGISTROS DA TABELA TRUSTY_PLANO_ACAO_PA E RODE O SCRIPT NOVAMENTE *********');ELSEalter table TRUSTY_PLANO_ACAO_PA modify DO_STATUS not null; END IF;END; Veja o erro:ORA-06550: line 16, column 1:PLS-00103: Encountered the symbol "ALTER" when expecting one of the following: begin case declare exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 4, 2005 PLSQL não executa direto comandos ddl; use a function execute immediate ... execute immediate 'alter table TRUSTY_PLANO_ACAO_PA modify DO_STATUS not null'; ... Compartilhar este post Link para o post Compartilhar em outros sites
dbandre29 0 Denunciar post Postado Outubro 4, 2005 Obrigado amigão, deu certo amém Compartilhar este post Link para o post Compartilhar em outros sites
dbandre29 0 Denunciar post Postado Outubro 5, 2005 EXECUTE IMMEDIATE 'CREATE TABLE TRUSTY_ACAOIMPPLANOACAO_X_ARQ ( SQ_ACAO_IMPL_PLANO_ACAO_PA NUMBER(10) NOT NULL, SQ_ARQUIVO NUMBER(10) NOT NULL, DS_ARQUIVO VARCHAR2(256))TABLESPACE TRUSTY_DATA PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE ( INITIAL 56K MINEXTENTS 1 MAXEXTENTS UNLIMITED )'; Compartilhar este post Link para o post Compartilhar em outros sites
dbandre29 0 Denunciar post Postado Outubro 5, 2005 Esqueci de botar a duvida , ele da erro de string não finalizada Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 5, 2005 ou a sintaxe está errada ou ele nao aceita este ´stringão´, tente quebrar e concatenar com o pipe EXECUTE IMMEDIATE 'CREATE TABLE TRUSTY_ACAOIMPPLANOACAO_X_ARQ ' || '('|| 'SQ_ACAO_IMPL_PLANO_ACAO_PA NUMBER(10) NOT NULL,"|| ... pq você precisa criar uma tabela via plsql ??!! Compartilhar este post Link para o post Compartilhar em outros sites
dbandre29 0 Denunciar post Postado Outubro 6, 2005 Porque que as vezes eu tenho que gerar scripts que não tenho acesso remoto então mando pra eles atualizações via script entendeu , ai eu testo aquiMais uma vez grato amigão Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Outubro 6, 2005 Para isto não precisa estar num bloco plsql , um arquivo texto e com seu usuário se conectando via sqlplus mesmo é possível e até mais simples. Tem até uma forma de mandar o código criptografado (para procedures só, creio), veja artigo http://www.imasters.com.br/artigo.php?cn=2608&cc=73 do Rodrigo Almeida. Compartilhar este post Link para o post Compartilhar em outros sites