Ir para conteúdo

POWERED BY:

Arquivado

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

ThaisN

Como ver conteúdo de campo de armazena uma funçao

Recommended Posts

Olá a todos,

 

Tenho uma tabela em Oracle que contém um campo do tipo varchar2 que en algusn casos armazena dados que creio que sáo funçoes, como por exemplo: [FIND], [MAP] e até algumas que sáo conhecidas como [sYSDATE] e [LENGTH].

Queria saber como ter acesso ao conteúdo real deste campo e também (no caso das funçoes desconhecidas, como a FIND) de ver o código da funçao.

 

Já procurei pelo SQL Developer as funçoes criadas e náo existe nenhuma com esses nomes.

Estou um pouco perdida...

 

Agradeço desde já!

 

Abraços,

 

Thaís

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o Sistema esteja montando em algum ponto um SQL dinamico com estes campos , pelo que entendi o conteúdo do campo é que contém SYSDATE ou algo assim.

 

Existem vários exemplos de como se monta um SQL desta forma.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez o Sistema esteja montando em algum ponto um SQL dinamico com estes campos , pelo que entendi o conteúdo do campo é que contém SYSDATE ou algo assim.

 

Existem vários exemplos de como se monta um SQL desta forma.

 

 

Você pode me dar um exemplo ou me dizer onde posso encontrar?

Onde ficam guardadas estas funçoes dinâmicas em Oracle? Náo encontro...

Obrigada!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não ficam guardadas são os programas (plsql por exemplo) que as montam , talvez estes campos guardem estas funções para montar estes sql´s.

 

O conteúdo real do campo pelo que entendi seria SYSDATE o resultado muda conforme o momento da execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não ficam guardadas são os programas (plsql por exemplo) que as montam , talvez estes campos guardem estas funções para montar estes sql´s.

 

O conteúdo real do campo pelo que entendi seria SYSDATE o resultado muda conforme o momento da execução.

 

Entendi. Se executa uma procedure en PL/SQL, por exemplo que atualiza esse campos.

Para saber como sáo atualizados eu teria que descobrir a Procedure, correto?

O campo que contém Sysdate náo me interessa, me interessa saber os que contém funçóes que náo sáo do Oracle, como o [FIND], por exemplo, como escrevi no primeiro post.

O select me traz [FIND] como resultado. Como descubro o que está armazenado de fato neste campo?

 

Obrigada mais uma vez, Motta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Existe algum Objeto com estes nomes ([FIND] etc) ?

 

Não faço ideia do pode ter sido feito em seu sistema aí.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse é um varchar2 e vem na tabela assim:

 

DEFAULTVALUE

 

[ADUSECCAOMIN]

[FNID]

[ADUMATERIAL]

[ADUDIMSECCAO]

[CONMATERIAL]

[OSUSER]

[sYSDATE]

[MAP]

[iPID]

[LENGTH]

22

15

[COLMATERIAL]

[COLDIMSECCAO]

[COLLENGTH]

[ORIGINX]

[ORIGINY]

[DIMCAMARA]

[DIMFECHOCAMARA]

[COLMATERIAL]

-- En verificació --

[CONDIAMETRO]

[COLLENGTH]

[CONMATERIAL]

[CONDIAMETRO]

[CONLENGTH]

[CONLENGTH]

[CODIPATRI]

 

Nao sei como descubrir o real conteúdo de esses campos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta é o SQL de criaçao da tabela:

 

CREATE TABLE "GIASYS"."MAATTRIBUTE"

( "MAID" NUMBER(5,0) NOT NULL ENABLE,

"ANID" NUMBER(5,0),

"NAMEINT" VARCHAR2(30 BYTE),

"NAMEEXT" VARCHAR2(30 BYTE),

"NAMEDESC" VARCHAR2(128 BYTE),

"DTYPE" VARCHAR2(30 BYTE),

"PNID" NUMBER(5,0),

"FILTER" VARCHAR2(255 BYTE),

"DEFAULTVALUE" VARCHAR2(30 BYTE),

"UPDATEVALUE" VARCHAR2(30 BYTE),

"RELATIONVALUE" VARCHAR2(30 BYTE),

"FLAGS" NUMBER(9,0) DEFAULT 0

) PCTFREE 10 PCTUSED 0 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 131072 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE "USERS" ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Creio que este DEFAULTVALUE é o valor que é gravado quando nenhuma informação é dada.

 

Alguns valores parecem apontar para campos do Sistema, outros a funções e outros para literais.

 

A chamada deve ser feita em algum ponto do Sistema (trigger, SP) que executa algum código dinamicamente,

sabe pesquisar uma parte de texto na tabela de fontes, segue um exemplo

 

SELECT *
FROM ALL_SOURCE
WHERE UPPER(TEXT) LIKE '%DEFAULTVALUE%'

Com base nisto talvez você ONDE esta loucura está sendo feita.

 

Boa sorte.

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.