"variável no Oracle", o que é esse "Oracle" pra vc : é o database ? É o 
programa-cliente que vc usa pra conectar no database ???
 De qquer forma, seguinte : o DATABASE Oracle absolutamente DESCONHECE se um 
dado comando vêm de um script ou do que for, então "comando" nenhum vc vai 
achar pra isso, mas Porém ele (database) dá pros programas-clientes algumas 
colunas na v$session que o programa-cliente PODE preencher com informações do 
tipo... 
 DEPENDENDO do programa-cliente que vc for utilizar, E do sistema-operacional, 
as colunas PODEM ou NÃO ser preenchidas - no caso do sqlplus , SE vc ativar a 
feature de preenchimento ativando o setting de APPINFO , vc obterá o nome do 
script : exemplo em Windows Vista 32-bits, com bd 10gR2 EE :
 
 => veja a minha config :
 
 C:\O10GR2>type %ORACLE_HOME%\sqlplus\admin\glogin.sql
 --
 -- Copyright (c) 1988, 2004, Oracle Corporation.  All Rights Reserved.
 --
 -- NAME
 --   glogin.sql
 --
 -- DESCRIPTION
 --   SQL*Plus global login "site profile" file
 --
 --   Add any SQL*Plus commands here that are to be executed when a
 --   user starts SQL*Plus, or uses the SQL*Plus CONNECT command
 --
 -- USAGE
 --   This script is automatically run
 --
 
 -- Used by Trusted Oracle
 COLUMN ROWLABEL FORMAT A15
.... 
outras linhas tantas ...
....

set term off
set APPINFO ON
... outras linhas 
-- definições extras
SET SERVEROUTPUT ON SIZE UNLIMITED


=> ok, com o setting ativo tenho este script :

C:\O10GR2>type script_exemplo.sql
declare
 module_name varchar2(100);
 action_name varchar2(100);
BEGIN
 dbms_application_info.read_module(module_name, action_name);
 dbms_output.put_line('module name: ' || module_name);
 dbms_output.put_line('action: ' || action_name);
END;
/
exit

=> olha a execução dele, como obtenho o nome do script na coluna :

C:\O10GR2>sqlplus "/ as sysdba" @script_exemplo

SQL*Plus: Release 10.2.0.5.0 - Production on Qua Set 21 11:52:04 2011

Copyright (c) 1982, 2010, Oracle.  All Rights Reserved.


Conectado a:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

module name: 01@ script_exemplo.sql
action:

Procedimento PL/SQL concluído com sucesso.

Desconectado de Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 
Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options

C:\O10GR2>

==> okdoc ? Só LEMBRO que, cfrme documentado, essas colunas na V$SESSIOn são 
*** pequenas ***, vc tem um limite máximo a ser respeitado...

 []s
 
   Chiappa
   

--- Em oracle_br@yahoogrupos.com.br, Josiel Oliveira <josieloliveira@...> 
escreveu
>
> Pessoal, obrigado a todos pela ajuda.
> 
> Na verdade, analisando mais a fundo o problema o que realmente preciso saber
> (sé é que existe como fazer isto) é o seguinte:
> 
> Saber em qual diretório está o script que está sendo executado, por exemplo:
> 
> *No SQL*PLUS executo:
> SQL> @c:\temp\script.sql
> *
> 
> Existe alguma variável no Oracle onde eu consiga saber que o script.sql está
> sendo executado a partir de c:\temp\  ??
> 
> 
> Obrigado.
> 
> 
> 
> 
> Em 16 de setembro de 2011 19:18, Marcos de Moura Gonçalves <
> mgmarcos@...> escreveu:
> 
> > Boa noite Josiel,
> >
> > Pelo que já vi de .PLB, o objetivo principal é esconder o código fonte de
> > códigos PL. É útil quando vc precisa entregar a terceiros os scripts de
> > criação de objetos ou para evitar que vejam o código fonte deles a partir
> > da
> > view DBA_SOURCE. Na prática, ele vai funcionar pra vc como um arquivo .SQL
> > (mas com os scripts PL encriptados), podendo executá-lo, por exemplo, de
> > dentro do sqlplus. Por esse motivo, realmente não consigo ver o motivo de
> > vc
> > chamar esse arquivo de dentro de um código PL... Pra começar, todo código
> > PL
> > (mesmo blocos anônimos) que vc executa, rodam de fato no servidor Oracle e
> > não na sua máquina cliente, portanto esse arquivo precisaria estar no SO do
> > servidor pra vc conseguir acessá-lo a partir da sua PL... Outra que pra vc
> > acessar o arquivo seria necessário usar uma package de acesso a disco como
> > o
> > UTL_FILE, jogar o conteúdo para uma variável local, fazer o parse do
> > conteúdo do arquivo para separar cada instrução isoladamente para
> > finalmente
> > executar cada instrução com EXECUTE IMMEDIATE (lembrando que um SELECT
> > simples não roda no EXECUTE IMMEDIATE, assim como de dentro de uma PL)...
> > Acho que é até possível, mas beeem trabalhoso... Se vc quer automatizar
> > algum processo, executar vários arquivos de uma vez, ou algo parecido,
> > talvez o ideal para vc seria tentar algo a nível de shell script no próprio
> > SO do servidor...
> >
> > []s
> >
> > Marcos
> >
> >
> > Em 16 de setembro de 2011 15:45, josielkcond <josieloliveira@...
> > >escreveu:
> >
> > > **
> > >
> > >
> > > Boa tarde a todos.
> > > Gostaria de saber se alguém já fez algo do tipo.
> > > O que preciso é a partir de um bloco PLSQL executar um script PLB
> > >
> > > declare
> > > variavel varchar2(10);
> > > begin
> > > select '@scrip.plb' into variavel from tabela;
> > > executar variavel
> > > end;
> > >
> > > algo seguindo o contexto acima....
> > > se puderem ajudar fico agradecido.
> > >
> > >
> > >
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> > ------------------------------------
> >
> >
> > --------------------------------------------------------------------------------------------------------------------------
> > >Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de
> > inteira responsabilidade de seus remetentes.
> > Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> >
> > --------------------------------------------------------------------------------------------------------------------------
> > >Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure
> > » Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE:
> > http://www.oraclebr.com.br/
> > ------------------------------------------------------------------------------------------------------------------------
> > Links do Yahoo! Grupos
> >
> >
> >
> 
> 
> -- 
> Josiel L. Oliveira
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a