Antes de responder, uma observação : SQL dinâmico é algo que ** deveria ** ser usado em pequenas doses, em rotinas simples e isoladas, pois vc PAGA UM PREÇO em performance pra usar isso, e esse preço NÂO É muito barato, como mostrado em http://asktom.oracle.com (procure pelas palavras-chave DYNAMIC SQL PERFORMANCE que vc acha ** diversos ** casos). Eu mesmo tenho a minha história de terror sobre isso : era um sistema de RH, onde TODOS os cálculos eram feitos via SQL dinãmico, com um ou dois usuários ia bem, a hora que foram instalar num cliente maior, com 5 ou seis usuários simultãneos, o negócio simplesmente PAROU, CAIU NO CHAU, fez pluft, caput. Me chamaram, mexi no banco, mas simplesmente NÂO HAVIA mais o que fazer, o gasto de CPU extra do SQL dinâmico simplesmente estava matando o banco, fizesse eu o que fosse, não teve como consertar... ==>> Assim sendo, 32 Kb, deveria dar & sobrar, pois SQL dinãmico deveria ser usado MUITO POUCO, ok ??
isto posto, aviso dado, a resposta : 32 Kb é o limite para SQL dinâmico com EXECUTE IMMEDIATE, pra executar SQLs maiores que isso vc deve usar as rotinas da package DBMS_SQL, com elas vc consegue passar um ARRAY com as linhas do SQL a executar, aí obviamente vc fica limitado só pela RAM e pelos limites de array do PL/SQL, em teoria. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "faogx9" <[EMAIL PROTECTED]> escreveu > Srs, > Temos uma rotina em pl/sql que constroi e executa uma instrucao sql > dinamicamente. > > A variavel que armazena a instrucao sql ultrapassa 32kb (limite do > varchar2 no pl/sql), geralmente passando de 1mb. > > A solucao que temos no momento é armazenar o texto num campo clob e > transferi-los a cada 32k para variaveis pre-definidas no codigo. > > Procedure xxx > > begin > v1: = primeiros 32k do clob > v2: = proximos 32k do clob.... > > execute immediate v1 || v2 || v3 || v4....... > end; > > > o problema nesta solução é que precisamos definir uma grande > quantidade variaveis .... > > Alguem possui uma solucao mais interessante? > utilizamos a vs 8.1.7.4 -------------------------------------------------------------------------------------------------------------------------- Atenção! As mensagens deste grupo são de acesso público e de inteira responsabilidade de seus remetentes. Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ --------------------------------------------------------------------------------------------------------------------------_____________________________________________________________________ Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423 Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/oracle_br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html