Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-26 Por tôpico Gabriel Herdt
 ninguém vai 
conseguir 
  quebrar...
   (Legião Urbana)
   
   
   As idéias estão no chão, você tropeça e acha a solução...
   (Titãs)
   
   
   
   
   
   De: Carlos martello carlos.martello@
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
   Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
   
   
   Ah sim.
   
   Então cara, vc não consegue pelo fato de um campo ou variável 
do 
  tipo clob ter suas particularidades . 
   
   Eu sinceramente também não sei e até pesquisaria pra vc (até pq 
  também estava precisando dessa informação), mas o certo seria 
fazer 
  uma pesquisa no Google ou metalink sobre como converter clob em 
  varchar por exemplo. Assim o problema seria resolvido ;).
   
   Assim que algum dos dois encontrar a fórmula encaminhamos, 
beleza?
   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL:  55+21+3094-6250
   
   Choice Technologies S/A - Inteligência em Energia
   
   e-mail: carlosmartello@ choice.com. br
   
   De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] 
  os.com.br] Em nome de Gabriel Herdt
   Enviada em: quarta-feira, 19 de novembro de 2008 15:17
   Para: [EMAIL PROTECTED] os.com.br
   Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
   
   Eu não consigo passar o resultado do Get_dll para uma variavel 
e 
   executar o conteudo dessa variavel. Tem outra forma de executar 
o 
   Resultado do GET_DDL?
   
   --- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br , Carlos Eduardo P. Martello 
   carlos.martello@ ... escreveu
   
Gabriel, até vi agora de uma forma mais atenta que vc já faz 
o 
   execute
immediate dentro da função.



Não entendi o que você quer então



É o execute immediate que não está funcionando?





Abs,







Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL: 55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@ ...



De: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br 
   [mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br ] Em
nome de Gabriel Herdt
Enviada em: terça-feira, 18 de novembro de 2008 22:33
Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br 
Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]



assim obrigado vou tentar, maas eu quero executar p dll 
gerado 
  pela 
funcao. pode me dizer como?
--- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br  mailto:oracle_ br%
   40yahoogrupos. com.br
, Carlos Eduardo P. Martello 
carlos.martello@  escreveu

 Gabriel,
 
 
 
 Tente o seguinte:
 
 
 
 
 
 Declare
 
 Vsql varchar2(2000) :='';
 
 Begin
 
 Vsql := fn_compara;
 
 Execute immediate vsql;
 
 End;
 
 
 
 Se ao invés de vc retornar um clob, retornar um varchar2, 
ajuda.
 
 
 
 Abs,
 
 
 
 
 
 
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL: 55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: carlosmartello@
 
 
 
 De: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br  mailto:oracle_ br%
   40yahoogrupos. com.br 
[mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br  mailto:oracle_ br%
   40yahoogrupos. com.br
] Em
 nome de Gabriel Herdt
 Enviada em: segunda-feira, 17 de novembro de 2008 16:49
 Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
  40yahoogrupos .com.br  mailto:oracle_ br%
   40yahoogrupos. com.br

 Assunto: [oracle_br] Ajuda em procedure[URGENTE]
 
 
 
 Pessoal como executar o resultado de DBMS_METADATA. get_ddl
  (. ..) 
   em 
 uma Function? Segue abaixo minmha Function
 
 FUNCTION FN_COMPARA (
 pr_usera IN VARCHAR2,
 pr_userb IN VARCHAR2,
 pr_erro OUT VARCHAR2
 )
 RETURN VARCHAR2
 IS
 vtable_name VARCHAR2 (30);
 DDL CLOB;
 i INTEGER;
 a INTEGER;
 x INTEGER;
 --get dbms_metadata. get_ddl
 (object_type, name,schema, version,model, transform) ;
 -- variable_name datatype;
 BEGIN
 vtable_name := '';
 i := 0;
 x := 0;
 -- grant select on all_tables to TCCB;
 
 FOR tabela IN (SELECT table_name
 FROM all_tables
 WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB'))
 AND table_name NOT IN (SELECT table_name
 FROM all_tables
 WHERE owner = 'TCCB'))
 LOOP
 vtable_name := tabela.Table_ name;
 
 DDL := DBMS_METADATA. get_ddl ('TABLE', vtable_name, 
pr_usera

Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-26 Por tôpico Gabriel Herdt
Ops, Desculpa me exspressei mal.
na verdade seu exemplo só arrumei um () e acerto. mas tentei colocar 
meu caso e retorno um erro ==

 ORA-06502: PL/SQL: erro: buffer de string de caracteres pequeno 
demais numérico ou de valor ORA-06512: em line 1

select
sys.dbms_lob.substr(dbms_metadata.get_ddl
('PROCEDURE','PR_AUTODDL', 'TCCA'),
sys.dbms_lob.getlength(dbms_metadata.get_ddl
('PROCEDURE','PR_AUTODDL', 'TCCA'))) DDL
from dual


--- Em oracle_br@yahoogrupos.com.br, ithigvo [EMAIL PROTECTED] escreveu

 Bom Dia,, 
 
 Para converter o clob em varchar utilizo o seguinte comando,,
 
 select 
 sys.dbms_lob.substr(dbms_metadata.get_ddl('USER',usuario),
 sys.dbms_lob.getlength(dbms_metadata.get_ddl 'USER',usuario)))   DDL
 from dual 
 
 neste caso para gerar o DDL de criação de usuários...
 
 mas nunca o utilizei dentro de uma procedure,,
 
 Veja se da certo
 
 Gustavo Veríssimo
 
 
 
 
 --- Em oracle_br@yahoogrupos.com.br, Gabriel Herdt
 gabrielherdt@ escreveu
 
  Sem problemas se eu conseguir passo aqui para a lista. mas vou 
poder 
  ver isso soh no final de semana. tem que estar pronto na quarta a 
  funcao =(. Vou passar uma funcao que trabalha com read_file do 
oracle.
  Ai se voce conseguir modificar ela para nosso objetivo ficaria 
grato.
  
  PROCEDURE read_file
   (pNomeTab in Varchar2,
pNomeCampo in VarChar2,
pNomeArq in VarChar2,
pNomeDire in VarChar2,
P_ERRO OUT VARCHAR2)
   IS
src_file BFILE := bfilename(pNomeDire, pNomeArq);
dst_file BLOB;
lgh_file BINARY_INTEGER;
sNomeDire char; --create or replace directory DIRETO 
  as 'C:\Sistemas\Gerencial\Figuras';
  
  BEGIN
  
  -- Zera Campo Blob
  EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
||pNomeCampo|| ' 
  = EMPTY_BLOB()';
  -- Trava no dado do campo
  EXECUTE IMMEDIATE 'Select ' || pNomeCampo ||' From ' || 
pNomeTab 
  ||' ' into dst_file ;
  -- Abre Arquivo
  sys.dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
  -- Determina Tamando em bytes do arquivo
  lgh_file := sys.dbms_lob.getlength(src_file);
  -- Ler arquivo
  sys.dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
  -- Update no arquivo Blob
  EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
||pNomeCampo|| ' 
  = :dst_file'
  USING dst_file;
  COMMIT;
  -- Fecha Arquivo
  sys.dbms_lob.fileclose(src_file);
  EXCEPTION
WHEN no_data_found THEN
  rollback;
  P_ERRO := '-20001, Não há dados';
WHEN others THEN
  rollback;
  P_ERRO := '-20003, Não foi Possivel Gravar Arquivo';
  END read_file;
  
  --- Em oracle_br@yahoogrupos.com.br, Wellerson Leite de Araújo 
  waraujo_bh@ escreveu
  
   Pessoal,
   
   Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. Nele 
  vocês podem utilizar o procedimento READ para ler pedaços de 
uma 
  variável do tipo LOB. Estes pedaços poderiam ser acumulados em 
uma 
  variável VARCHAR2 que poderia ser passada para o comando EXECUTE 
  IMMEDIATE.
   Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 
pode 
  amazenar, vocês podem ainda criar uma lógica que utilize um 
vetor, 
  acredito que para a maioria dos DDLs retornados uma única 
variável 
  será suficiente. O pacote DBMS_LOB também oferece a função 
GETLENGTH, 
  que pode ser utilizada para testar a quantidade de caracteres 
  presentes numa variável CLOB.
   Só mais um comentário. Neste caso, eu recomendaria uma 
procedure. 
  Não é muito elegante utilizar parâmetros de OUT em uma function.
   
   
   Att,
   Wellerson

   Não vou deixar me embrutecer, eu acredito nos meus ideais. 
Podem 
  até maltratar o meu coração, que meu espírito ninguém vai 
conseguir 
  quebrar...
   (Legião Urbana)
   
   
   As idéias estão no chão, você tropeça e acha a solução...
   (Titãs)
   
   
   
   
   
   De: Carlos martello carlos.martello@
   Para: oracle_br@yahoogrupos.com.br
   Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
   Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
   
   
   Ah sim.
   
   Então cara, vc não consegue pelo fato de um campo ou variável 
do 
  tipo clob ter suas particularidades . 
   
   Eu sinceramente também não sei e até pesquisaria pra vc (até pq 
  também estava precisando dessa informação), mas o certo seria 
fazer 
  uma pesquisa no Google ou metalink sobre como converter clob em 
  varchar por exemplo. Assim o problema seria resolvido ;).
   
   Assim que algum dos dois encontrar a fórmula encaminhamos, 
beleza?
   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL:  55+21+3094-6250
   
   Choice Technologies S/A - Inteligência em Energia
   
   e-mail: carlosmartello@ choice.com. br
   
   De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] 
  os.com.br] Em nome de Gabriel Herdt
   Enviada em: quarta-feira, 19 de novembro de 2008 15:17
   Para: [EMAIL PROTECTED] os.com.br
   Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
   
   Eu não consigo passar o

Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-26 Por tôpico Gabriel Herdt
na verdade esse comando SUBSTR só aceita até 4000 de byte.
Alguem tem alguma solução?
Como dar um execute EXECUTE IMMEDIATE em um CLOB com mais de 4000 
Caractere??

--- Em oracle_br@yahoogrupos.com.br, Gabriel Herdt 
[EMAIL PROTECTED] escreveu

 Ops, Desculpa me exspressei mal.
 na verdade seu exemplo só arrumei um () e acerto. mas tentei 
colocar 
 meu caso e retorno um erro ==
 
  ORA-06502: PL/SQL: erro: buffer de string de caracteres pequeno 
 demais numérico ou de valor ORA-06512: em line 1
 
 select
 sys.dbms_lob.substr(dbms_metadata.get_ddl
 ('PROCEDURE','PR_AUTODDL', 'TCCA'),
 sys.dbms_lob.getlength(dbms_metadata.get_ddl
 ('PROCEDURE','PR_AUTODDL', 'TCCA'))) DDL
 from dual
 
 
 --- Em oracle_br@yahoogrupos.com.br, ithigvo ithigvo@ escreveu
 
  Bom Dia,, 
  
  Para converter o clob em varchar utilizo o seguinte comando,,
  
  select 
  sys.dbms_lob.substr(dbms_metadata.get_ddl('USER',usuario),
  sys.dbms_lob.getlength(dbms_metadata.get_ddl 'USER',usuario)))   
DDL
  from dual 
  
  neste caso para gerar o DDL de criação de usuários...
  
  mas nunca o utilizei dentro de uma procedure,,
  
  Veja se da certo
  
  Gustavo Veríssimo
  
  
  
  
  --- Em oracle_br@yahoogrupos.com.br, Gabriel Herdt
  gabrielherdt@ escreveu
  
   Sem problemas se eu conseguir passo aqui para a lista. mas vou 
 poder 
   ver isso soh no final de semana. tem que estar pronto na quarta 
a 
   funcao =(. Vou passar uma funcao que trabalha com read_file do 
 oracle.
   Ai se voce conseguir modificar ela para nosso objetivo ficaria 
 grato.
   
   PROCEDURE read_file
(pNomeTab in Varchar2,
 pNomeCampo in VarChar2,
 pNomeArq in VarChar2,
 pNomeDire in VarChar2,
 P_ERRO OUT VARCHAR2)
IS
 src_file BFILE := bfilename(pNomeDire, pNomeArq);
 dst_file BLOB;
 lgh_file BINARY_INTEGER;
 sNomeDire char; --create or replace directory DIRETO 
   as 'C:\Sistemas\Gerencial\Figuras';
   
   BEGIN
   
   -- Zera Campo Blob
   EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
 ||pNomeCampo|| ' 
   = EMPTY_BLOB()';
   -- Trava no dado do campo
   EXECUTE IMMEDIATE 'Select ' || pNomeCampo ||' From ' || 
 pNomeTab 
   ||' ' into dst_file ;
   -- Abre Arquivo
   sys.dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
   -- Determina Tamando em bytes do arquivo
   lgh_file := sys.dbms_lob.getlength(src_file);
   -- Ler arquivo
   sys.dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
   -- Update no arquivo Blob
   EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
 ||pNomeCampo|| ' 
   = :dst_file'
   USING dst_file;
   COMMIT;
   -- Fecha Arquivo
   sys.dbms_lob.fileclose(src_file);
   EXCEPTION
 WHEN no_data_found THEN
   rollback;
   P_ERRO := '-20001, Não há dados';
 WHEN others THEN
   rollback;
   P_ERRO := '-20003, Não foi Possivel Gravar Arquivo';
   END read_file;
   
   --- Em oracle_br@yahoogrupos.com.br, Wellerson Leite de Araújo 
   waraujo_bh@ escreveu
   
Pessoal,

Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. 
Nele 
   vocês podem utilizar o procedimento READ para ler pedaços de 
 uma 
   variável do tipo LOB. Estes pedaços poderiam ser acumulados em 
 uma 
   variável VARCHAR2 que poderia ser passada para o comando 
EXECUTE 
   IMMEDIATE.
Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 
 pode 
   amazenar, vocês podem ainda criar uma lógica que utilize um 
 vetor, 
   acredito que para a maioria dos DDLs retornados uma única 
 variável 
   será suficiente. O pacote DBMS_LOB também oferece a função 
 GETLENGTH, 
   que pode ser utilizada para testar a quantidade de caracteres 
   presentes numa variável CLOB.
Só mais um comentário. Neste caso, eu recomendaria uma 
 procedure. 
   Não é muito elegante utilizar parâmetros de OUT em uma 
function.


Att,
Wellerson
 
Não vou deixar me embrutecer, eu acredito nos meus ideais. 
 Podem 
   até maltratar o meu coração, que meu espírito ninguém vai 
 conseguir 
   quebrar...
(Legião Urbana)


As idéias estão no chão, você tropeça e acha a solução...
(Titãs)





De: Carlos martello carlos.martello@
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure
[URGENTE]


Ah sim.

Então cara, vc não consegue pelo fato de um campo ou variável 
 do 
   tipo clob ter suas particularidades . 

Eu sinceramente também não sei e até pesquisaria pra vc (até 
pq 
   também estava precisando dessa informação), mas o certo seria 
 fazer 
   uma pesquisa no Google ou metalink sobre como converter clob em 
   varchar por exemplo. Assim o problema seria resolvido ;).

Assim que algum dos dois encontrar a fórmula encaminhamos, 
 beleza?

Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL:  55+21

Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-26 Por tôpico jlchiappa
 oracle_br@yahoogrupos.com.br, Gabriel Herdt
[EMAIL PROTECTED] escreveu

 Ops, Desculpa me exspressei mal.
 na verdade seu exemplo só arrumei um () e acerto. mas tentei colocar 
 meu caso e retorno um erro ==
 
  ORA-06502: PL/SQL: erro: buffer de string de caracteres pequeno 
 demais numérico ou de valor ORA-06512: em line 1
 
 select
 sys.dbms_lob.substr(dbms_metadata.get_ddl
 ('PROCEDURE','PR_AUTODDL', 'TCCA'),
 sys.dbms_lob.getlength(dbms_metadata.get_ddl
 ('PROCEDURE','PR_AUTODDL', 'TCCA'))) DDL
 from dual
 
 
 --- Em oracle_br@yahoogrupos.com.br, ithigvo ithigvo@ escreveu
 
  Bom Dia,, 
  
  Para converter o clob em varchar utilizo o seguinte comando,,
  
  select 
  sys.dbms_lob.substr(dbms_metadata.get_ddl('USER',usuario),
  sys.dbms_lob.getlength(dbms_metadata.get_ddl 'USER',usuario)))   DDL
  from dual 
  
  neste caso para gerar o DDL de criação de usuários...
  
  mas nunca o utilizei dentro de uma procedure,,
  
  Veja se da certo
  
  Gustavo Veríssimo
  
  
  
  
  --- Em oracle_br@yahoogrupos.com.br, Gabriel Herdt
  gabrielherdt@ escreveu
  
   Sem problemas se eu conseguir passo aqui para a lista. mas vou 
 poder 
   ver isso soh no final de semana. tem que estar pronto na quarta a 
   funcao =(. Vou passar uma funcao que trabalha com read_file do 
 oracle.
   Ai se voce conseguir modificar ela para nosso objetivo ficaria 
 grato.
   
   PROCEDURE read_file
(pNomeTab in Varchar2,
 pNomeCampo in VarChar2,
 pNomeArq in VarChar2,
 pNomeDire in VarChar2,
 P_ERRO OUT VARCHAR2)
IS
 src_file BFILE := bfilename(pNomeDire, pNomeArq);
 dst_file BLOB;
 lgh_file BINARY_INTEGER;
 sNomeDire char; --create or replace directory DIRETO 
   as 'C:\Sistemas\Gerencial\Figuras';
   
   BEGIN
   
   -- Zera Campo Blob
   EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
 ||pNomeCampo|| ' 
   = EMPTY_BLOB()';
   -- Trava no dado do campo
   EXECUTE IMMEDIATE 'Select ' || pNomeCampo ||' From ' || 
 pNomeTab 
   ||' ' into dst_file ;
   -- Abre Arquivo
   sys.dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
   -- Determina Tamando em bytes do arquivo
   lgh_file := sys.dbms_lob.getlength(src_file);
   -- Ler arquivo
   sys.dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
   -- Update no arquivo Blob
   EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' 
 ||pNomeCampo|| ' 
   = :dst_file'
   USING dst_file;
   COMMIT;
   -- Fecha Arquivo
   sys.dbms_lob.fileclose(src_file);
   EXCEPTION
 WHEN no_data_found THEN
   rollback;
   P_ERRO := '-20001, Não há dados';
 WHEN others THEN
   rollback;
   P_ERRO := '-20003, Não foi Possivel Gravar Arquivo';
   END read_file;
   
   --- Em oracle_br@yahoogrupos.com.br, Wellerson Leite de Araújo 
   waraujo_bh@ escreveu
   
Pessoal,

Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. Nele 
   vocês podem utilizar o procedimento READ para ler pedaços de 
 uma 
   variável do tipo LOB. Estes pedaços poderiam ser acumulados em 
 uma 
   variável VARCHAR2 que poderia ser passada para o comando EXECUTE 
   IMMEDIATE.
Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 
 pode 
   amazenar, vocês podem ainda criar uma lógica que utilize um 
 vetor, 
   acredito que para a maioria dos DDLs retornados uma única 
 variável 
   será suficiente. O pacote DBMS_LOB também oferece a função 
 GETLENGTH, 
   que pode ser utilizada para testar a quantidade de caracteres 
   presentes numa variável CLOB.
Só mais um comentário. Neste caso, eu recomendaria uma 
 procedure. 
   Não é muito elegante utilizar parâmetros de OUT em uma function.


Att,
Wellerson
 
Não vou deixar me embrutecer, eu acredito nos meus ideais. 
 Podem 
   até maltratar o meu coração, que meu espírito ninguém vai 
 conseguir 
   quebrar...
(Legião Urbana)


As idéias estão no chão, você tropeça e acha a solução...
(Titãs)





De: Carlos martello carlos.martello@
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]


Ah sim.

Então cara, vc não consegue pelo fato de um campo ou variável 
 do 
   tipo clob ter suas particularidades . 

Eu sinceramente também não sei e até pesquisaria pra vc (até pq 
   também estava precisando dessa informação), mas o certo seria 
 fazer 
   uma pesquisa no Google ou metalink sobre como converter clob em 
   varchar por exemplo. Assim o problema seria resolvido ;).

Assim que algum dos dois encontrar a fórmula encaminhamos, 
 beleza?

Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL:  55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@ choice.com. br

De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED

Re: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-23 Por tôpico Gabriel Herdt

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@

 

De: oracle_br@yahoogrupos.com.br
   [mailto:[EMAIL PROTECTED] Em nome de Gabriel Herdt
Enviada em: quarta-feira, 19 de novembro de 2008 15:17
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

 

Eu não consigo passar o resultado do Get_dll para uma 
variavel e 
executar o conteudo dessa variavel. Tem outra forma de 
executar o 
Resultado do GET_DDL?

--- Em oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br , Carlos Eduardo P. 
  Martello 
carlos.martello@ escreveu

 Gabriel, até vi agora de uma forma mais atenta que vc já 
faz o 
execute
 immediate dentro da função.
 
 
 
 Não entendi o que você quer então
 
 
 
 É o execute immediate que não está funcionando?
 
 
 
 
 
 Abs,
 
 
 
 
 
 
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL: 55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: carlosmartello@
 
 
 
 De: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br ] Em
 nome de Gabriel Herdt
 Enviada em: terça-feira, 18 de novembro de 2008 22:33
 Para: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br 
 Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
 
 
 assim obrigado vou tentar, maas eu quero executar p dll 
gerado 
  pela 
 funcao. pode me dizer como?
 --- Em oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br
 , Carlos Eduardo P. Martello 
 carlos.martello@ escreveu
 
  Gabriel,
  
  
  
  Tente o seguinte:
  
  
  
  
  
  Declare
  
  Vsql varchar2(2000) :='';
  
  Begin
  
  Vsql := fn_compara;
  
  Execute immediate vsql;
  
  End;
  
  
  
  Se ao invés de vc retornar um clob, retornar um varchar2, 
  ajuda.
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
  
  
  De: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br 
 [mailto:oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br
 ] Em
  nome de Gabriel Herdt
  Enviada em: segunda-feira, 17 de novembro de 2008 16:49
  Para: oracle_br@yahoogrupos.com.br
   mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
40yahoogrupos.com.br
 
  Assunto: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  Pessoal como executar o resultado de DBMS_METADATA.get_ddl
  (...) 
em 
  uma Function? Segue abaixo minmha Function
  
  FUNCTION FN_COMPARA (
  pr_usera IN VARCHAR2,
  pr_userb IN VARCHAR2,
  pr_erro OUT VARCHAR2
  )
  RETURN VARCHAR2
  IS
  vtable_name VARCHAR2 (30);
  DDL CLOB;
  i INTEGER;
  a INTEGER;
  x INTEGER;
  --get dbms_metadata.get_ddl
  (object_type,name,schema,version,model,transform);
  -- variable_name datatype;
  BEGIN
  vtable_name := '';
  i := 0;
  x := 0;
  -- grant select on all_tables to TCCB;
  
  FOR tabela IN (SELECT table_name
  FROM all_tables
  WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB'))
  AND table_name NOT IN (SELECT table_name
  FROM all_tables
  WHERE owner = 'TCCB'))
  LOOP
  vtable_name := tabela.Table_name;
  
  DDL := DBMS_METADATA.get_ddl ('TABLE', vtable_name, 
pr_usera);
  EXECUTE IMMEDIATE TO_CHAR (DDL);
  
  COMMIT;
  END LOOP;
  
  RETURN TO_CHAR (DDL);
  EXCEPTION
  WHEN OTHERS
  THEN
  pr_erro := ('Erro: ' ||pr_erro||SQLERRM);
  END;
  
  
  
  
  
  [As partes desta mensagem que não continham texto foram 
  removidas]
 
 
 
 
 
 
 [As partes desta mensagem que não continham texto foram 
  removidas]


 



[As partes desta mensagem que não continham texto foram 
removidas]
   
  
 





Re: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-21 Por tôpico jlchiappa
 SYSTEM.TESTE 
 (ENQ_TID VARCHAR2(22), 
  STEP_NO NUMBE
  R, 
  DBLINK VARCHAR2(128), 
  SCHEMA_NAME VARCHAR2(30), 
  PACKAGE_NAME VARC
  HAR2(30), 
  CATCHUP RAW(16) DEFAULT '00', 
   CONSTRAINT TESTE_PRIMARY PRIMAR
  Y KEY (ENQ_TID, DBLINK, STEP_NO)
USING INDEX PCTFREE 10 INITRANS 2 MAXTR
  ANS 255 COMPUTE STATISTICS 
STORAGE(INITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXE
  XTENTS 505
PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  
   TABLESPACE TOOLS  ENABLE, 
   CONSTRAINT TESTE_FK FOREIGN KEY (DBLINK, CA
  TCHUP)
REFERENCES SYSTEM.DEF$_DESTINATION 
 (DBLINK, CATCHUP)
  ENABLE
  
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(I
  NITIAL 40960 NEXT 40960 MINEXTENTS 1 MAXEXTENTS 505
PCTINCREASE 50 FREELISTS 1
   FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE TOOLS 
  
  == olha aí :
  
  [EMAIL PROTECTED]:SQLBEGIN
2  execute immediate(to_char(:x));
3  END;
4  /
  
  Procedimento PL/SQL concluído com sucesso.
  
  [EMAIL PROTECTED]:SQL@desc teste
   Nome  Nulo?Tipo
   - 
  
   ENQ_TID   NOT NULL VARCHAR2(22)
   STEP_NO   NOT NULL NUMBER
   DBLINKNOT NULL VARCHAR2(128)
   SCHEMA_NAMEVARCHAR2(30)
   PACKAGE_NAME   VARCHAR2(30)
   CATCHUPRAW(16)
  
  []s
  
Chiappa
  
  
 ==
  Palestrante ENPO.BR - acesse http://www.enpo-br.org/
  Instrutor Workshops ENPO/TWS - acesse 
 http://www.twstecnologia.com.br/
  
 ==
  
  O mundo precisa de mais gênios humildes e modestos - infelizmente
  somos muito poucos
  
  --- Em oracle_br@yahoogrupos.com.br, Carlos martello
  carlos.martello@ escreveu
  
   Ah sim.
   
   Então cara, vc não consegue pelo fato de um campo ou variável do
  tipo clob ter suas particularidades. 
   
   Eu sinceramente também não sei e até pesquisaria pra vc (até pq
  também estava precisando dessa informação), mas o certo seria fazer
  uma pesquisa no Google ou metalink sobre como converter clob em
  varchar por exemplo. Assim o problema seria resolvido ;).
   

   
   Assim que algum dos dois encontrar a fórmula encaminhamos, 
 beleza?
   

   

   

   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL:  55+21+3094-6250
   
   Choice Technologies S/A - Inteligência em Energia
   
   e-mail: carlosmartello@
   

   
   De: oracle_br@yahoogrupos.com.br
  [mailto:[EMAIL PROTECTED] Em nome de Gabriel Herdt
   Enviada em: quarta-feira, 19 de novembro de 2008 15:17
   Para: oracle_br@yahoogrupos.com.br
   Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
   

   
   Eu não consigo passar o resultado do Get_dll para uma variavel e 
   executar o conteudo dessa variavel. Tem outra forma de executar o 
   Resultado do GET_DDL?
   
   --- Em oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br , Carlos Eduardo P. 
 Martello 
   carlos.martello@ escreveu
   
Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
   execute
immediate dentro da função.



Não entendi o que você quer então



É o execute immediate que não está funcionando?





Abs,







Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL: 55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@



De: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br  
   [mailto:oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br ] Em
nome de Gabriel Herdt
Enviada em: terça-feira, 18 de novembro de 2008 22:33
Para: oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br 
Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]



assim obrigado vou tentar, maas eu quero executar p dll gerado 
 pela 
funcao. pode me dizer como?
--- Em oracle_br@yahoogrupos.com.br
  mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
   40yahoogrupos.com.br
, Carlos Eduardo P. Martello 
carlos.martello@ escreveu

 Gabriel,
 
 
 
 Tente o seguinte:
 
 
 
 
 
 Declare
 
 Vsql varchar2(2000) :='';
 
 Begin
 
 Vsql := fn_compara;
 
 Execute immediate vsql;
 
 End;
 
 
 
 Se ao invés de vc retornar um clob, retornar um varchar2, 
 ajuda.
 
 
 
 Abs

Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-21 Por tôpico Gabriel Herdt
Sem problemas se eu conseguir passo aqui para a lista. mas vou poder 
ver isso soh no final de semana. tem que estar pronto na quarta a 
funcao =(. Vou passar uma funcao que trabalha com read_file do oracle.
Ai se voce conseguir modificar ela para nosso objetivo ficaria grato.

PROCEDURE read_file
 (pNomeTab in Varchar2,
  pNomeCampo in VarChar2,
  pNomeArq in VarChar2,
  pNomeDire in VarChar2,
  P_ERRO OUT VARCHAR2)
 IS
  src_file BFILE := bfilename(pNomeDire, pNomeArq);
  dst_file BLOB;
  lgh_file BINARY_INTEGER;
  sNomeDire char; --create or replace directory DIRETO 
as 'C:\Sistemas\Gerencial\Figuras';

BEGIN

-- Zera Campo Blob
EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' ||pNomeCampo|| ' 
= EMPTY_BLOB()';
-- Trava no dado do campo
EXECUTE IMMEDIATE 'Select ' || pNomeCampo ||' From ' || pNomeTab 
||' ' into dst_file ;
-- Abre Arquivo
sys.dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
-- Determina Tamando em bytes do arquivo
lgh_file := sys.dbms_lob.getlength(src_file);
-- Ler arquivo
sys.dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
-- Update no arquivo Blob
EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' ||pNomeCampo|| ' 
= :dst_file'
USING dst_file;
COMMIT;
-- Fecha Arquivo
sys.dbms_lob.fileclose(src_file);
EXCEPTION
  WHEN no_data_found THEN
rollback;
P_ERRO := '-20001, Não há dados';
  WHEN others THEN
rollback;
P_ERRO := '-20003, Não foi Possivel Gravar Arquivo';
END read_file;

--- Em oracle_br@yahoogrupos.com.br, Wellerson Leite de Araújo 
[EMAIL PROTECTED] escreveu

 Pessoal,
 
 Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. Nele 
vocês podem utilizar o procedimento READ para ler pedaços de uma 
variável do tipo LOB. Estes pedaços poderiam ser acumulados em uma 
variável VARCHAR2 que poderia ser passada para o comando EXECUTE 
IMMEDIATE.
 Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 pode 
amazenar, vocês podem ainda criar uma lógica que utilize um vetor, 
acredito que para a maioria dos DDLs retornados uma única variável 
será suficiente. O pacote DBMS_LOB também oferece a função GETLENGTH, 
que pode ser utilizada para testar a quantidade de caracteres 
presentes numa variável CLOB.
 Só mais um comentário. Neste caso, eu recomendaria uma procedure. 
Não é muito elegante utilizar parâmetros de OUT em uma function.
 
 
 Att,
 Wellerson
  
 Não vou deixar me embrutecer, eu acredito nos meus ideais. Podem 
até maltratar o meu coração, que meu espírito ninguém vai conseguir 
quebrar...
 (Legião Urbana)
 
 
 As idéias estão no chão, você tropeça e acha a solução...
 (Titãs)
 
 
 
 
 
 De: Carlos martello [EMAIL PROTECTED]
 Para: oracle_br@yahoogrupos.com.br
 Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
 Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
 
 Ah sim.
 
 Então cara, vc não consegue pelo fato de um campo ou variável do 
tipo clob ter suas particularidades . 
 
 Eu sinceramente também não sei e até pesquisaria pra vc (até pq 
também estava precisando dessa informação), mas o certo seria fazer 
uma pesquisa no Google ou metalink sobre como converter clob em 
varchar por exemplo. Assim o problema seria resolvido ;).
 
 Assim que algum dos dois encontrar a fórmula encaminhamos, beleza?
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL:  55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: carlosmartello@ choice.com. br
 
 De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] 
os.com.br] Em nome de Gabriel Herdt
 Enviada em: quarta-feira, 19 de novembro de 2008 15:17
 Para: [EMAIL PROTECTED] os.com.br
 Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
 Eu não consigo passar o resultado do Get_dll para uma variavel e 
 executar o conteudo dessa variavel. Tem outra forma de executar o 
 Resultado do GET_DDL?
 
 --- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
40yahoogrupos .com.br , Carlos Eduardo P. Martello 
 carlos.martello@ ... escreveu
 
  Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
 execute
  immediate dentro da função.
  
  
  
  Não entendi o que você quer então
  
  
  
  É o execute immediate que não está funcionando?
  
  
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@ ...
  
  
  
  De: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
40yahoogrupos .com.br 
 [mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%
40yahoogrupos .com.br ] Em
  nome de Gabriel Herdt
  Enviada em: terça-feira, 18 de novembro de 2008 22:33
  Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
40yahoogrupos .com.br 
  Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  assim obrigado vou tentar, maas eu quero executar p dll gerado 
pela 
  funcao. pode me dizer como?
  --- Em [EMAIL

Re: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-21 Por tôpico Gabriel Herdt
   NOT NULL VARCHAR2(22)
  STEP_NO   NOT NULL NUMBER
  DBLINKNOT NULL VARCHAR2(128)
  SCHEMA_NAMEVARCHAR2(30)
  PACKAGE_NAME   VARCHAR2(30)
  CATCHUPRAW(16)
 
 []s
 
   Chiappa
 
 
==
 Palestrante ENPO.BR - acesse http://www.enpo-br.org/
 Instrutor Workshops ENPO/TWS - acesse 
http://www.twstecnologia.com.br/
 
==
 
 O mundo precisa de mais gênios humildes e modestos - infelizmente
 somos muito poucos
 
 --- Em oracle_br@yahoogrupos.com.br, Carlos martello
 carlos.martello@ escreveu
 
  Ah sim.
  
  Então cara, vc não consegue pelo fato de um campo ou variável do
 tipo clob ter suas particularidades. 
  
  Eu sinceramente também não sei e até pesquisaria pra vc (até pq
 também estava precisando dessa informação), mas o certo seria fazer
 uma pesquisa no Google ou metalink sobre como converter clob em
 varchar por exemplo. Assim o problema seria resolvido ;).
  
   
  
  Assim que algum dos dois encontrar a fórmula encaminhamos, 
beleza?
  
   
  
   
  
   
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL:  55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
   
  
  De: oracle_br@yahoogrupos.com.br
 [mailto:[EMAIL PROTECTED] Em nome de Gabriel Herdt
  Enviada em: quarta-feira, 19 de novembro de 2008 15:17
  Para: oracle_br@yahoogrupos.com.br
  Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
  
   
  
  Eu não consigo passar o resultado do Get_dll para uma variavel e 
  executar o conteudo dessa variavel. Tem outra forma de executar o 
  Resultado do GET_DDL?
  
  --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br , Carlos Eduardo P. 
Martello 
  carlos.martello@ escreveu
  
   Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
  execute
   immediate dentro da função.
   
   
   
   Não entendi o que você quer então
   
   
   
   É o execute immediate que não está funcionando?
   
   
   
   
   
   Abs,
   
   
   
   
   
   
   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL: 55+21+3094-6250
   
   Choice Technologies S/A - Inteligência em Energia
   
   e-mail: carlosmartello@
   
   
   
   De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br  
  [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br ] Em
   nome de Gabriel Herdt
   Enviada em: terça-feira, 18 de novembro de 2008 22:33
   Para: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br 
   Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
   
   
   
   assim obrigado vou tentar, maas eu quero executar p dll gerado 
pela 
   funcao. pode me dizer como?
   --- Em oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
  40yahoogrupos.com.br
   , Carlos Eduardo P. Martello 
   carlos.martello@ escreveu
   
Gabriel,



Tente o seguinte:





Declare

Vsql varchar2(2000) :='';

Begin

Vsql := fn_compara;

Execute immediate vsql;

End;



Se ao invés de vc retornar um clob, retornar um varchar2, 
ajuda.



Abs,







Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL: 55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@



De: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
  40yahoogrupos.com.br 
   [mailto:oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
  40yahoogrupos.com.br
   ] Em
nome de Gabriel Herdt
Enviada em: segunda-feira, 17 de novembro de 2008 16:49
Para: oracle_br@yahoogrupos.com.br
 mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
  40yahoogrupos.com.br
   
Assunto: [oracle_br] Ajuda em procedure[URGENTE]



Pessoal como executar o resultado de DBMS_METADATA.get_ddl
(...) 
  em 
uma Function? Segue abaixo minmha Function

FUNCTION FN_COMPARA (
pr_usera IN VARCHAR2,
pr_userb IN VARCHAR2,
pr_erro OUT VARCHAR2
)
RETURN VARCHAR2
IS
vtable_name VARCHAR2 (30);
DDL CLOB;
i INTEGER;
a INTEGER;
x INTEGER;
--get dbms_metadata.get_ddl
(object_type,name,schema,version,model,transform);
-- variable_name datatype;
BEGIN
vtable_name := '';
i := 0;
x := 0;
-- grant select on all_tables to TCCB;

FOR tabela IN (SELECT table_name
FROM all_tables
WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB

Re: Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-21 Por tôpico ithigvo
Bom Dia,, 

Para converter o clob em varchar utilizo o seguinte comando,,

select 
sys.dbms_lob.substr(dbms_metadata.get_ddl('USER',usuario),
sys.dbms_lob.getlength(dbms_metadata.get_ddl 'USER',usuario)))   DDL
from dual 

neste caso para gerar o DDL de criação de usuários...

mas nunca o utilizei dentro de uma procedure,,

Veja se da certo

Gustavo Veríssimo




--- Em oracle_br@yahoogrupos.com.br, Gabriel Herdt
[EMAIL PROTECTED] escreveu

 Sem problemas se eu conseguir passo aqui para a lista. mas vou poder 
 ver isso soh no final de semana. tem que estar pronto na quarta a 
 funcao =(. Vou passar uma funcao que trabalha com read_file do oracle.
 Ai se voce conseguir modificar ela para nosso objetivo ficaria grato.
 
 PROCEDURE read_file
  (pNomeTab in Varchar2,
   pNomeCampo in VarChar2,
   pNomeArq in VarChar2,
   pNomeDire in VarChar2,
   P_ERRO OUT VARCHAR2)
  IS
   src_file BFILE := bfilename(pNomeDire, pNomeArq);
   dst_file BLOB;
   lgh_file BINARY_INTEGER;
   sNomeDire char; --create or replace directory DIRETO 
 as 'C:\Sistemas\Gerencial\Figuras';
 
 BEGIN
 
 -- Zera Campo Blob
 EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' ||pNomeCampo|| ' 
 = EMPTY_BLOB()';
 -- Trava no dado do campo
 EXECUTE IMMEDIATE 'Select ' || pNomeCampo ||' From ' || pNomeTab 
 ||' ' into dst_file ;
 -- Abre Arquivo
 sys.dbms_lob.fileopen(src_file, dbms_lob.file_readonly);
 -- Determina Tamando em bytes do arquivo
 lgh_file := sys.dbms_lob.getlength(src_file);
 -- Ler arquivo
 sys.dbms_lob.loadfromfile(dst_file, src_file, lgh_file);
 -- Update no arquivo Blob
 EXECUTE IMMEDIATE 'UPDATE '|| pNomeTab ||' SET ' ||pNomeCampo|| ' 
 = :dst_file'
 USING dst_file;
 COMMIT;
 -- Fecha Arquivo
 sys.dbms_lob.fileclose(src_file);
 EXCEPTION
   WHEN no_data_found THEN
 rollback;
 P_ERRO := '-20001, Não há dados';
   WHEN others THEN
 rollback;
 P_ERRO := '-20003, Não foi Possivel Gravar Arquivo';
 END read_file;
 
 --- Em oracle_br@yahoogrupos.com.br, Wellerson Leite de Araújo 
 waraujo_bh@ escreveu
 
  Pessoal,
  
  Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. Nele 
 vocês podem utilizar o procedimento READ para ler pedaços de uma 
 variável do tipo LOB. Estes pedaços poderiam ser acumulados em uma 
 variável VARCHAR2 que poderia ser passada para o comando EXECUTE 
 IMMEDIATE.
  Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 pode 
 amazenar, vocês podem ainda criar uma lógica que utilize um vetor, 
 acredito que para a maioria dos DDLs retornados uma única variável 
 será suficiente. O pacote DBMS_LOB também oferece a função GETLENGTH, 
 que pode ser utilizada para testar a quantidade de caracteres 
 presentes numa variável CLOB.
  Só mais um comentário. Neste caso, eu recomendaria uma procedure. 
 Não é muito elegante utilizar parâmetros de OUT em uma function.
  
  
  Att,
  Wellerson
   
  Não vou deixar me embrutecer, eu acredito nos meus ideais. Podem 
 até maltratar o meu coração, que meu espírito ninguém vai conseguir 
 quebrar...
  (Legião Urbana)
  
  
  As idéias estão no chão, você tropeça e acha a solução...
  (Titãs)
  
  
  
  
  
  De: Carlos martello carlos.martello@
  Para: oracle_br@yahoogrupos.com.br
  Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
  Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  Ah sim.
  
  Então cara, vc não consegue pelo fato de um campo ou variável do 
 tipo clob ter suas particularidades . 
  
  Eu sinceramente também não sei e até pesquisaria pra vc (até pq 
 também estava precisando dessa informação), mas o certo seria fazer 
 uma pesquisa no Google ou metalink sobre como converter clob em 
 varchar por exemplo. Assim o problema seria resolvido ;).
  
  Assim que algum dos dois encontrar a fórmula encaminhamos, beleza?
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL:  55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@ choice.com. br
  
  De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] 
 os.com.br] Em nome de Gabriel Herdt
  Enviada em: quarta-feira, 19 de novembro de 2008 15:17
  Para: [EMAIL PROTECTED] os.com.br
  Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
  
  Eu não consigo passar o resultado do Get_dll para uma variavel e 
  executar o conteudo dessa variavel. Tem outra forma de executar o 
  Resultado do GET_DDL?
  
  --- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%
 40yahoogrupos .com.br , Carlos Eduardo P. Martello 
  carlos.martello@ ... escreveu
  
   Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
  execute
   immediate dentro da função.
   
   
   
   Não entendi o que você quer então
   
   
   
   É o execute immediate que não está funcionando?
   
   
   
   
   
   Abs,
   
   
   
   
   
   
   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL: 55+21+3094-6250

Re: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-20 Por tôpico jlchiappa
://www.enpo-br.org/
Instrutor Workshops ENPO/TWS - acesse http://www.twstecnologia.com.br/
==

O mundo precisa de mais gênios humildes e modestos - infelizmente
somos muito poucos

--- Em oracle_br@yahoogrupos.com.br, Carlos martello
[EMAIL PROTECTED] escreveu

 Ah sim.
 
 Então cara, vc não consegue pelo fato de um campo ou variável do
tipo clob ter suas particularidades. 
 
 Eu sinceramente também não sei e até pesquisaria pra vc (até pq
também estava precisando dessa informação), mas o certo seria fazer
uma pesquisa no Google ou metalink sobre como converter clob em
varchar por exemplo. Assim o problema seria resolvido ;).
 
  
 
 Assim que algum dos dois encontrar a fórmula encaminhamos, beleza?
 
  
 
  
 
  
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL:  55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: [EMAIL PROTECTED]
 
  
 
 De: oracle_br@yahoogrupos.com.br
[mailto:[EMAIL PROTECTED] Em nome de Gabriel Herdt
 Enviada em: quarta-feira, 19 de novembro de 2008 15:17
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
  
 
 Eu não consigo passar o resultado do Get_dll para uma variavel e 
 executar o conteudo dessa variavel. Tem outra forma de executar o 
 Resultado do GET_DDL?
 
 --- Em oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br , Carlos Eduardo P. Martello 
 carlos.martello@ escreveu
 
  Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
 execute
  immediate dentro da função.
  
  
  
  Não entendi o que você quer então
  
  
  
  É o execute immediate que não está funcionando?
  
  
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
  
  
  De: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  
 [mailto:oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br ] Em
  nome de Gabriel Herdt
  Enviada em: terça-feira, 18 de novembro de 2008 22:33
  Para: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br 
  Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  assim obrigado vou tentar, maas eu quero executar p dll gerado pela 
  funcao. pode me dizer como?
  --- Em oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br
  , Carlos Eduardo P. Martello 
  carlos.martello@ escreveu
  
   Gabriel,
   
   
   
   Tente o seguinte:
   
   
   
   
   
   Declare
   
   Vsql varchar2(2000) :='';
   
   Begin
   
   Vsql := fn_compara;
   
   Execute immediate vsql;
   
   End;
   
   
   
   Se ao invés de vc retornar um clob, retornar um varchar2, ajuda.
   
   
   
   Abs,
   
   
   
   
   
   
   
   Carlos Martello
   
   DBA Oracle / Consultor de Tecnologia
   
   TEL: 55+21+3094-6250
   
   Choice Technologies S/A - Inteligência em Energia
   
   e-mail: carlosmartello@
   
   
   
   De: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br 
  [mailto:oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br
  ] Em
   nome de Gabriel Herdt
   Enviada em: segunda-feira, 17 de novembro de 2008 16:49
   Para: oracle_br@yahoogrupos.com.br
mailto:oracle_br%40yahoogrupos.com.br  mailto:oracle_br%
 40yahoogrupos.com.br
  
   Assunto: [oracle_br] Ajuda em procedure[URGENTE]
   
   
   
   Pessoal como executar o resultado de DBMS_METADATA.get_ddl(...) 
 em 
   uma Function? Segue abaixo minmha Function
   
   FUNCTION FN_COMPARA (
   pr_usera IN VARCHAR2,
   pr_userb IN VARCHAR2,
   pr_erro OUT VARCHAR2
   )
   RETURN VARCHAR2
   IS
   vtable_name VARCHAR2 (30);
   DDL CLOB;
   i INTEGER;
   a INTEGER;
   x INTEGER;
   --get dbms_metadata.get_ddl
   (object_type,name,schema,version,model,transform);
   -- variable_name datatype;
   BEGIN
   vtable_name := '';
   i := 0;
   x := 0;
   -- grant select on all_tables to TCCB;
   
   FOR tabela IN (SELECT table_name
   FROM all_tables
   WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB'))
   AND table_name NOT IN (SELECT table_name
   FROM all_tables
   WHERE owner = 'TCCB'))
   LOOP
   vtable_name := tabela.Table_name;
   
   DDL := DBMS_METADATA.get_ddl ('TABLE', vtable_name, pr_usera);
   EXECUTE IMMEDIATE TO_CHAR (DDL);
   
   COMMIT;
   END LOOP;
   
   RETURN TO_CHAR (DDL);
   EXCEPTION
   WHEN OTHERS
   THEN
   pr_erro := ('Erro: ' ||pr_erro||SQLERRM);
   END;
   
   
   
   
   
   [As partes desta mensagem que não continham texto foram removidas]
  
  
  
  
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-19 Por tôpico Gabriel Herdt
Eu não consigo passar o resultado do Get_dll para uma variavel e 
executar o conteudo dessa variavel. Tem outra forma de executar o 
Resultado do GET_DDL?

--- Em oracle_br@yahoogrupos.com.br, Carlos Eduardo P. Martello 
[EMAIL PROTECTED] escreveu

 Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
execute
 immediate dentro da função.
 
  
 
 Não entendi o que você quer então
 
  
 
 É o execute immediate que não está funcionando?
 
  
 
  
 
 Abs,
 
  
 
  
 
  
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL:  55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: [EMAIL PROTECTED]
 
  
 
 De: oracle_br@yahoogrupos.com.br 
[mailto:[EMAIL PROTECTED] Em
 nome de Gabriel Herdt
 Enviada em: terça-feira, 18 de novembro de 2008 22:33
 Para: oracle_br@yahoogrupos.com.br
 Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
  
 
 assim obrigado vou tentar, maas eu quero executar p dll gerado pela 
 funcao. pode me dizer como?
 --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
 , Carlos Eduardo P. Martello 
 carlos.martello@ escreveu
 
  Gabriel,
  
  
  
  Tente o seguinte:
  
  
  
  
  
  Declare
  
  Vsql varchar2(2000) :='';
  
  Begin
  
  Vsql := fn_compara;
  
  Execute immediate vsql;
  
  End;
  
  
  
  Se ao invés de vc retornar um clob, retornar um varchar2, ajuda.
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
  
  
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br  
 [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
 ] Em
  nome de Gabriel Herdt
  Enviada em: segunda-feira, 17 de novembro de 2008 16:49
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%
40yahoogrupos.com.br
 
  Assunto: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  Pessoal como executar o resultado de DBMS_METADATA.get_ddl(...) 
em 
  uma Function? Segue abaixo minmha Function
  
  FUNCTION FN_COMPARA (
  pr_usera IN VARCHAR2,
  pr_userb IN VARCHAR2,
  pr_erro OUT VARCHAR2
  )
  RETURN VARCHAR2
  IS
  vtable_name VARCHAR2 (30);
  DDL CLOB;
  i INTEGER;
  a INTEGER;
  x INTEGER;
  --get dbms_metadata.get_ddl
  (object_type,name,schema,version,model,transform);
  -- variable_name datatype;
  BEGIN
  vtable_name := '';
  i := 0;
  x := 0;
  -- grant select on all_tables to TCCB;
  
  FOR tabela IN (SELECT table_name
  FROM all_tables
  WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB'))
  AND table_name NOT IN (SELECT table_name
  FROM all_tables
  WHERE owner = 'TCCB'))
  LOOP
  vtable_name := tabela.Table_name;
  
  DDL := DBMS_METADATA.get_ddl ('TABLE', vtable_name, pr_usera);
  EXECUTE IMMEDIATE TO_CHAR (DDL);
  
  COMMIT;
  END LOOP;
  
  RETURN TO_CHAR (DDL);
  EXCEPTION
  WHEN OTHERS
  THEN
  pr_erro := ('Erro: ' ||pr_erro||SQLERRM);
  END;
  
  
  
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
  
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]





RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-19 Por tôpico Carlos martello
Ah sim.

Então cara, vc não consegue pelo fato de um campo ou variável do tipo clob ter 
suas particularidades. 

Eu sinceramente também não sei e até pesquisaria pra vc (até pq também estava 
precisando dessa informação), mas o certo seria fazer uma pesquisa no Google ou 
metalink sobre como converter clob em varchar por exemplo. Assim o problema 
seria resolvido ;).

 

Assim que algum dos dois encontrar a fórmula encaminhamos, beleza?

 

 

 

Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL:  55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: [EMAIL PROTECTED]

 

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Gabriel 
Herdt
Enviada em: quarta-feira, 19 de novembro de 2008 15:17
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

 

Eu não consigo passar o resultado do Get_dll para uma variavel e 
executar o conteudo dessa variavel. Tem outra forma de executar o 
Resultado do GET_DDL?

--- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br , 
Carlos Eduardo P. Martello 
[EMAIL PROTECTED] escreveu

 Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
execute
 immediate dentro da função.
 
 
 
 Não entendi o que você quer então
 
 
 
 É o execute immediate que não está funcionando?
 
 
 
 
 
 Abs,
 
 
 
 
 
 
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL: 55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: [EMAIL PROTECTED]
 
 
 
 De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
[mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br ] 
Em
 nome de Gabriel Herdt
 Enviada em: terça-feira, 18 de novembro de 2008 22:33
 Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br 
 Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
 
 
 assim obrigado vou tentar, maas eu quero executar p dll gerado pela 
 funcao. pode me dizer como?
 --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 mailto:oracle_br%
40yahoogrupos.com.br
 , Carlos Eduardo P. Martello 
 carlos.martello@ escreveu
 
  Gabriel,
  
  
  
  Tente o seguinte:
  
  
  
  
  
  Declare
  
  Vsql varchar2(2000) :='';
  
  Begin
  
  Vsql := fn_compara;
  
  Execute immediate vsql;
  
  End;
  
  
  
  Se ao invés de vc retornar um clob, retornar um varchar2, ajuda.
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
  
  
  De: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
  mailto:oracle_br%
40yahoogrupos.com.br 
 [mailto:oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
 mailto:oracle_br%
40yahoogrupos.com.br
 ] Em
  nome de Gabriel Herdt
  Enviada em: segunda-feira, 17 de novembro de 2008 16:49
  Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br  
  mailto:oracle_br%
40yahoogrupos.com.br
 
  Assunto: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  Pessoal como executar o resultado de DBMS_METADATA.get_ddl(...) 
em 
  uma Function? Segue abaixo minmha Function
  
  FUNCTION FN_COMPARA (
  pr_usera IN VARCHAR2,
  pr_userb IN VARCHAR2,
  pr_erro OUT VARCHAR2
  )
  RETURN VARCHAR2
  IS
  vtable_name VARCHAR2 (30);
  DDL CLOB;
  i INTEGER;
  a INTEGER;
  x INTEGER;
  --get dbms_metadata.get_ddl
  (object_type,name,schema,version,model,transform);
  -- variable_name datatype;
  BEGIN
  vtable_name := '';
  i := 0;
  x := 0;
  -- grant select on all_tables to TCCB;
  
  FOR tabela IN (SELECT table_name
  FROM all_tables
  WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB'))
  AND table_name NOT IN (SELECT table_name
  FROM all_tables
  WHERE owner = 'TCCB'))
  LOOP
  vtable_name := tabela.Table_name;
  
  DDL := DBMS_METADATA.get_ddl ('TABLE', vtable_name, pr_usera);
  EXECUTE IMMEDIATE TO_CHAR (DDL);
  
  COMMIT;
  END LOOP;
  
  RETURN TO_CHAR (DDL);
  EXCEPTION
  WHEN OTHERS
  THEN
  pr_erro := ('Erro: ' ||pr_erro||SQLERRM);
  END;
  
  
  
  
  
  [As partes desta mensagem que não continham texto foram removidas]
 
 
 
 
 
 
 [As partes desta mensagem que não continham texto foram removidas]


 



[As partes desta mensagem que não continham texto foram removidas]



Res: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

2008-11-19 Por tôpico Wellerson Leite de Araújo
Pessoal,

Neste caso eu acredito que o pacote DBMS_LOB possa ajudar. Nele vocês podem 
utilizar o procedimento READ para ler pedaços de uma variável do tipo LOB. 
Estes pedaços poderiam ser acumulados em uma variável VARCHAR2 que poderia ser 
passada para o comando EXECUTE IMMEDIATE.
Claro que se o DDL exceder  o tamanho máximo que um VARCHAR2 pode amazenar, 
vocês podem ainda criar uma lógica que utilize um vetor, acredito que para a 
maioria dos DDLs retornados uma única variável será suficiente. O pacote 
DBMS_LOB também oferece a função GETLENGTH, que pode ser utilizada para testar 
a quantidade de caracteres presentes numa variável CLOB.
Só mais um comentário. Neste caso, eu recomendaria uma procedure. Não é muito 
elegante utilizar parâmetros de OUT em uma function.


Att,
Wellerson
 
Não vou deixar me embrutecer, eu acredito nos meus ideais. Podem até maltratar 
o meu coração, que meu espírito ninguém vai conseguir quebrar...
(Legião Urbana)


As idéias estão no chão, você tropeça e acha a solução...
(Titãs)





De: Carlos martello [EMAIL PROTECTED]
Para: oracle_br@yahoogrupos.com.br
Enviadas: Quarta-feira, 19 de Novembro de 2008 17:14:31
Assunto: RES: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]


Ah sim.

Então cara, vc não consegue pelo fato de um campo ou variável do tipo clob ter 
suas particularidades . 

Eu sinceramente também não sei e até pesquisaria pra vc (até pq também estava 
precisando dessa informação), mas o certo seria fazer uma pesquisa no Google ou 
metalink sobre como converter clob em varchar por exemplo. Assim o problema 
seria resolvido ;).

Assim que algum dos dois encontrar a fórmula encaminhamos, beleza?

Carlos Martello

DBA Oracle / Consultor de Tecnologia

TEL:  55+21+3094-6250

Choice Technologies S/A - Inteligência em Energia

e-mail: carlosmartello@ choice.com. br

De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de 
Gabriel Herdt
Enviada em: quarta-feira, 19 de novembro de 2008 15:17
Para: [EMAIL PROTECTED] os.com.br
Assunto: Re: RES: RES: [oracle_br] Ajuda em procedure[URGENTE]

Eu não consigo passar o resultado do Get_dll para uma variavel e 
executar o conteudo dessa variavel. Tem outra forma de executar o 
Resultado do GET_DDL?

--- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br , 
Carlos Eduardo P. Martello 
carlos.martello@ ... escreveu

 Gabriel, até vi agora de uma forma mais atenta que vc já faz o 
execute
 immediate dentro da função.
 
 
 
 Não entendi o que você quer então
 
 
 
 É o execute immediate que não está funcionando?
 
 
 
 
 
 Abs,
 
 
 
 
 
 
 
 Carlos Martello
 
 DBA Oracle / Consultor de Tecnologia
 
 TEL: 55+21+3094-6250
 
 Choice Technologies S/A - Inteligência em Energia
 
 e-mail: carlosmartello@ ...
 
 
 
 De: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br 
[mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br ] 
Em
 nome de Gabriel Herdt
 Enviada em: terça-feira, 18 de novembro de 2008 22:33
 Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br 
 Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE]
 
 
 
 assim obrigado vou tentar, maas eu quero executar p dll gerado pela 
 funcao. pode me dizer como?
 --- Em [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br  
 mailto:oracle_ br%
40yahoogrupos. com.br
 , Carlos Eduardo P. Martello 
 carlos.martello@  escreveu
 
  Gabriel,
  
  
  
  Tente o seguinte:
  
  
  
  
  
  Declare
  
  Vsql varchar2(2000) :='';
  
  Begin
  
  Vsql := fn_compara;
  
  Execute immediate vsql;
  
  End;
  
  
  
  Se ao invés de vc retornar um clob, retornar um varchar2, ajuda.
  
  
  
  Abs,
  
  
  
  
  
  
  
  Carlos Martello
  
  DBA Oracle / Consultor de Tecnologia
  
  TEL: 55+21+3094-6250
  
  Choice Technologies S/A - Inteligência em Energia
  
  e-mail: carlosmartello@
  
  
  
  De: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br  
  mailto:oracle_ br%
40yahoogrupos. com.br 
 [mailto:[EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br 
  mailto:oracle_ br%
40yahoogrupos. com.br
 ] Em
  nome de Gabriel Herdt
  Enviada em: segunda-feira, 17 de novembro de 2008 16:49
  Para: [EMAIL PROTECTED] os.com.br mailto:oracle_ br%40yahoogrupos .com.br 
   mailto:oracle_ br%
40yahoogrupos. com.br
 
  Assunto: [oracle_br] Ajuda em procedure[URGENTE]
  
  
  
  Pessoal como executar o resultado de DBMS_METADATA. get_ddl(. ..) 
em 
  uma Function? Segue abaixo minmha Function
  
  FUNCTION FN_COMPARA (
  pr_usera IN VARCHAR2,
  pr_userb IN VARCHAR2,
  pr_erro OUT VARCHAR2
  )
  RETURN VARCHAR2
  IS
  vtable_name VARCHAR2 (30);
  DDL CLOB;
  i INTEGER;
  a INTEGER;
  x INTEGER;
  --get dbms_metadata. get_ddl
  (object_type, name,schema, version,model, transform) ;
  -- variable_name datatype;
  BEGIN
  vtable_name := '';
  i := 0;
  x := 0;
  -- grant select on all_tables to TCCB