Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dbandre29

Para os Dbas

Recommended Posts

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.