Dear:
In PL / SQL we can even find which procedures do insert at a certain table.
Now in thousands of Java code lines, such as solving a simple question:
"I want a list containing the names of the tables and objects" executable " (procedures, FUNCTIONS) that are used. "
Note that we can have a Java code even decent, but we can also have indecent. In short:
will always exist somewhere in the Java code written something "... SELECT * from name_tabela ..." or ... "Proc_x" ... [
very complicated?
grateful,
Renato
Find Names SQL objects in Java code
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
- stcoutinho
- Moderador
- Posts: 850
- Joined: Wed, 11 May 2011 5:15 pm
- Location: são Paulo - SP
Hi Renato,
Maybe here I'm exaggerating, but you could do the following:
1) Create a table (tbl_cod_java) with two fields:
NO_CLASS_JAVA VARCHAR2 (100)
NURO_LINHA Number (4),
TE_JAVA VARCHAR2 (4000)
2) Extract all of your Java codes into text files;
3) With the help of an Excel, mount a folder with 3 columns. Add the Java text on the 3rd column, the name of the Java class in the 1st column. Place the number of the line on the 2nd. Export the file as CSV (text, delimited);
3) Import all these Java codes into step table 1. Use SQL * Loader if applicable
4) Make Join Queries between this table and the Data Dictionary. Connect as the Owner of the tables and objects accessed by your Java code:
Ex:
5) You can make multiple joins: with User_Tables, User_Secy, User_Views, etc.
It may seem like a Lusitana idea, but the thick way is how you create a kind of data dictionary for your Java codes, just as the user_source for the PL / SQL code.
If you do not want to do this, maybe you should be monitoring the SQL session that would be accessed by this Java code and auditing the commands. Type, make your Java code connect with a specific user and monitor all commands running on the bank by this user.
Maybe forists have another idea better for your problem.
Hugs and good luck,
Sergio Coutinho
Maybe here I'm exaggerating, but you could do the following:
1) Create a table (tbl_cod_java) with two fields:
NO_CLASS_JAVA VARCHAR2 (100)
NURO_LINHA Number (4),
TE_JAVA VARCHAR2 (4000)
2) Extract all of your Java codes into text files;
3) With the help of an Excel, mount a folder with 3 columns. Add the Java text on the 3rd column, the name of the Java class in the 1st column. Place the number of the line on the 2nd. Export the file as CSV (text, delimited);
3) Import all these Java codes into step table 1. Use SQL * Loader if applicable
4) Make Join Queries between this table and the Data Dictionary. Connect as the Owner of the tables and objects accessed by your Java code:
Ex:
SELECT A.NO_CLASSE_JAVA
A.NU_LINHA,
A.TE_JAVA
FROM TBL_COD_JAVA A,
USER_TABLES B
WHERE UPPER(TE_JAVA) LIKE '%'||B.TABLE_NAME||'%'
It may seem like a Lusitana idea, but the thick way is how you create a kind of data dictionary for your Java codes, just as the user_source for the PL / SQL code.
If you do not want to do this, maybe you should be monitoring the SQL session that would be accessed by this Java code and auditing the commands. Type, make your Java code connect with a specific user and monitor all commands running on the bank by this user.
Maybe forists have another idea better for your problem.
Hugs and good luck,
Sergio Coutinho
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Coutinho: I'll try. I'll talk to the Java programmer to get the best way to get this text file where the Java source would be.
Thanks
Thanks
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Coutinho:
I followed your suggestion and did a WH_JAVA_XREF procedure that is an output.
See why you think.
I followed your suggestion and did a WH_JAVA_XREF procedure that is an output.
See why you think.
create or replace procedure who_java_xref
(
XPsenha in out varchar2
)
as
PRAGMA AUTONOMOUS_TRANSACTION;
--*====================================================================
--* Procedure..: who_java_xref
--* Descricao..: Atualiza a Tabela Z_JAVA_SQL_XREF com as referências cruzadas
--* das Tabelas
--* USER_TABLE, user_views, user_mviews, user_sequences,
--* USER_SYNONYMS,
--* USER_PROCEDURES,
--* além de COMANDOS SQL, incluindo classes JPA Provider,
--* e rastreamento classes Action pelo cruzamento com a Tabela
--* Z_ROTINAS que abrigam as URLs das EAPs.
--*
--* É um PRAGMA AUTONOMOUS_TRANSACTION onde seu commit não
--* interfere na lógica de nenhuma outra aplicação.
--* IMPORTANTE:
--* ==========
--*
--* Existe apenas um parâmetro de senha de execução (IN/OUT).
--* Existe uma aplicação JAVA que recebe o(s) Diretório(s) à partir
--* do(s) qual(ais) serão extraídos TODOS os arquivos FONTE (.java; .xml)
--* fazendo INSERT na Tabela Z_JAVA_SQL_XREF removendo duplicidade pela chave:
--*
--* NMARQJAV - Nome do Arquivo JAVA (contem todo o path do arquivo C:\...\....java)
--*
--* A outra componente da chave, NRLIN, fica como segurança da aplicação JAVA e
--* como facilitador de ordenação do fonte JAVA.
--*
--* Por segurança o reset na Z_JAVA_SQL_XREF (Delete) é feito manualmente quando se
--* desejar "refazer" o XREF devido o acúmulo de manutenções nas estruturas SQL e/ou
--* nos fontes JAVA.
--*
--* Ao final com o comando SQL abaixo é extraida uma Planilha Excel com as referências
--* SQL presentes nos fontes JAVA permitindo um rastreamento simples por Auto-Filtro.
--*
--* Select * from Z_JAVA_SQL_XREF where
--* RCTABVIESEQ is not null or
--* RCPROFUN is not null or
--* RCSQLCMD is not null or
--* RCSYN is not null or
--* RCCLAJPA is not null or
--* RCCLAACT is not null;
--*
--* Z_JAVA_SQL_XREF
--*
--* NMARQJAV VARCHAR2(2048)
--* NRLIN NUMBER(8)
--* DCLIN VARCHAR2(2048)
--* RCTABVIESEQ VARCHAR2(2048)
--* RCPROFUN VARCHAR2(2048)
--* RCSQLCMD VARCHAR2(2048)
--* RCSYN VARCHAR2(2048)
--* RCCLAJPA VARCHAR2(2048)
--* RCCLAACT VARCHAR2(2048)
--*
--* Revisões...: Criacao da Procedure
--* Data.......: 22/08/2013
--* Autor .....: Renato Viana
--* Revisões...:
--* Data.......:
--* Autor Rev..:
--*=====================================================================
XPfetchs number(8);
XPTAGROWID ROWID;
XPNMTAB VARCHAR2(20);
XP_já_OUT VARCHAR2(2048);
XPEXCLEN VARCHAR2(20);
XPEXCOK VARCHAR2(20);
------------ "Record Fetch" Cursor
XNMOBJ VARCHAR2(256);
Xnmarqjav VARCHAR2(2048);
Xnrlin NUMBER(8);
Xdclin VARCHAR2(2048);
Xrctabvieseq VARCHAR2(2048);
Xrcprofun VARCHAR2(2048);
Xrcsqlcmd VARCHAR2(2048);
Xrcsyn VARCHAR2(2048);
Xrcclajpa VARCHAR2(2048);
Xrcclaact VARCHAR2(2048);
Xrowid ROWID;
------------ Cursores
cursor sqlTABLES is
SELECT
B.TABLE_NAME,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
USER_TABLES B
WHERE A.DCLIN is not null
AND UPPER(A.DCLIN) LIKE '%'||B.TABLE_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlVIEW is
SELECT
B.VIEW_NAME,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
user_views B
WHERE A.DCLIN is not null
AND UPPER(A.DCLIN) LIKE '%'||B.VIEW_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlMVIEW is
SELECT
B.MVIEW_NAME,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
user_mviews B
WHERE A.DCLIN is not null
AND UPPER(A.DCLIN) LIKE '%'||B.MVIEW_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlSEQUENCES is
SELECT
B.SEQUENCE_NAME,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
user_sequences B
WHERE A.DCLIN is not null
AND UPPER(A.DCLIN) LIKE '%'||B.SEQUENCE_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlSYNONYMS is
SELECT
B.SYNONYM_NAME,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
USER_SYNONYMS B
WHERE A.DCLIN is not null
AND UPPER(A.DCLIN) LIKE '%'||B.SYNONYM_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlPROCEDURES is
SELECT
B.object_name,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
USER_PROCEDURES B
WHERE A.DCLIN is not null
AND B.PROCEDURE_NAME is null
AND UPPER(A.DCLIN) LIKE '%'||B.object_name||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlCLAJPA is
SELECT
A.rctabvieseq,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A
WHERE A.DCLIN is not null
AND a.rcclajpa is null
AND UPPER(a.dclin) LIKE '%@%.CLASS%TABLE%'
order by a.nmarqjav, a.nrlin;
cursor sqlCKCLAJPA is
SELECT
B.rcclajpa,
A.nmarqjav,
A.nrlin,
A.dclin,
B.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
B.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
(SELECT rcclajpa, rctabvieseq, rcsyn from Z_JAVA_SQL_XREF
WHERE rcclajpa is not null) B
WHERE A.DCLIN is not null
AND a.rcclajpa is null
AND UPPER(a.dclin) LIKE '%'||UPPER(B.rcclajpa)||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlCLAACT is
SELECT
B.dcrot,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
(select * from z_classeaction) B
WHERE A.DCLIN is not null
AND a.rcclaact is null
AND UPPER(a.dclin) LIKE '%'||UPPER(B.CLASSEACTION)||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlJPACOMMANDS is
SELECT
B.SQL_COMMAND,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
Z_JPACOMMANDS B
WHERE A.DCLIN is not null
AND A.rcclajpa is not null
AND UPPER(A.DCLIN) LIKE '%'||B.JPACOMMANDS_NAME||'%'
order by a.nmarqjav, a.nrlin;
cursor sqlCOMMANDS is
SELECT
B.SQL_COMMAND,
A.nmarqjav,
A.nrlin,
A.dclin,
A.rctabvieseq,
A.rcprofun,
A.rcsqlcmd,
A.rcsyn,
A.rcclajpa,
A.rcclaact,
A.rowid
FROM Z_JAVA_SQL_XREF A,
Z_SQLCOMMANDS B
WHERE A.DCLIN is not null
AND A.rcclajpa is null
AND UPPER(A.DCLIN) LIKE '%'||B.SQL_COMMAND||'%'
order by a.nmarqjav, a.nrlin;
-------- já existindo informação agrega com vírgula, além de impedir duplicidade
FUNCTION Z_já_XNMOBJ(
XZ_já_OLD IN VARCHAR2,
XZ_já_NEW IN VARCHAR2 )
RETURN VARCHAR2 AS
XZ_já_OUT VARCHAR2(2048);
BEGIN
if XZ_já_OLD is null then
RETURN XZ_já_NEW;
end if;
if XZ_já_NEW is null then
RETURN XZ_já_OLD;
end if;
XZ_já_OUT := XZ_já_OLD || ',' || XZ_já_NEW;
RETURN XZ_já_OUT;
EXCEPTION
WHEN OTHERS THEN
XPEXCLEN := 'OBJ LENGTH > '|| XPNMTAB;
RETURN XZ_já_OLD;
END Z_já_XNMOBJ;
-------- Informação ObjectSQL User_Tables realmente corresponde ao LIKE %
FUNCTION Z_OK_XNMOBJ (
XZ_OK_DCLIN IN VARCHAR2,
XZ_OK_XNMOBJ IN VARCHAR2 )
RETURN BOOLEAN AS
XZ_OK_EXISTE NUMBER := 0;
XZ_OK_ONDE NUMBER := 1;
XZ_OK_VEZ NUMBER := 1;
XZ_OK_FIM NUMBER := 1;
XZ_OK_LEN NUMBER := 0;
BEGIN
if XZ_OK_DCLIN is null
or XZ_OK_XNMOBJ is null then
RETURN FALSE;
end if;
if length(XZ_OK_XNMOBJ) > length(XZ_OK_DCLIN) then
RETURN FALSE;
end if;
XZ_OK_FIM := length(XZ_OK_DCLIN);
XZ_OK_LEN := length(XZ_OK_XNMOBJ);
LOOP
XZ_OK_ONDE := INSTR(UPPER(XZ_OK_DCLIN),XZ_OK_XNMOBJ,XZ_OK_ONDE,XZ_OK_VEZ);
IF XZ_OK_ONDE > 0 THEN
IF (XZ_OK_ONDE + XZ_OK_LEN - 1) = XZ_OK_FIM
OR XZ_OK_XNMOBJ || ' ' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '"' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '''' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ',' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ';' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ')' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '(' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
THEN
XZ_OK_EXISTE := 1;
RETURN TRUE;
ELSE
XZ_OK_VEZ := 2;
END IF;
ELSE
XZ_OK_EXISTE := 0;
RETURN FALSE;
END IF;
END LOOP;
RETURN FALSE;
EXCEPTION
WHEN OTHERS THEN
XPEXCOK := 'EXCEP OK OBJ ' || XPNMTAB;
RETURN FALSE;
END Z_OK_XNMOBJ;
begin
If XPsenha <> 'pass69' then
XPsenha := 'Err pass';
return;
end if;
--- Remove e Recria Tabelas Básicas de Classe Action e Commands SQL
--- ===============================================================
delete z_classeaction;
--- A tabela z_classeaction
--- Aqui Z_ROTINAS corresponde a uma tabela do Sistema em que se faz XREF contendo colunas:
--- DCURLROT = Descrição URL da Rotina que contem path da rotina JAVA que liga um Menu Web
--- responsável pelo "disparo" das funcionalidades (Action) e que normalmente são
--- utilizados no nome das demais classes diretamente ligadas a funcionalida;
--- IDSIS = Identificador do Sistema em que se faz XREF;
--- DCROT = Descrição da Rotina Funcional (ID da EAP).
insert into z_classeaction
(CLASSEACTION, DCURLROT, DCROT)
(select
case
when INSTR(Z_GET_FILENAME(SUBSTR(dcurlrot,1,(INSTR(dcurlrot,'.do?evento',-1,1)-1))),'man') > 0
then
SUBSTR(Z_GET_FILENAME(SUBSTR(dcurlrot,1,(INSTR(dcurlrot,'.do?evento',-1,1)-1))),1,
(INSTR((Z_GET_FILENAME(SUBSTR(dcurlrot,1,(INSTR(dcurlrot,'.do?evento',-1,1)-1)))),'man',-1,1)-1))
else
Z_GET_FILENAME(SUBSTR(dcurlrot,1,(INSTR(dcurlrot,'.do?evento',-1,1)-1)))
end AS CLASSEACTION
,dcurlrot
,dcrot from Z_ROTINAS where dcurlrot is not null
and idsis = 36
and dcurlrot like '%?evento%'
);
commit;
--- Outras Tabelas Mencionadas nos Cursores:
--- =======================================
--- Estas tabelas não são removidas ou recriadas aqui neste código.
--- Elas são mantidas externamente em função das necessidades de rastreamento.
---
--- Z_JPACOMMANDS
---
--- JPACOMMANDS_NAME SQLCOMMAND
--- ================ ==========
--- .UPDATE UPDATE
--- .MERGE UPDATE
--- .SAVE UPDATE
--- .PERSIST UPDATE
--- .DELETE DELETE
---
--- Z_SQLCOMMANDS
---
--- SQL_COMMAND
--- ===========
--- CREATE
--- DELETE
--- DROP
--- GRANT
--- INSERT
--- JOIN
--- SELECT
--- UNION
--- UPDATE
--- ALTER
----- Begin Cursor TABLES
XPNMTAB := 'sqlTABLES';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlTABLES;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlTABLES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlTABLES%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rctabvieseq
INTO Xrctabvieseq
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrctabvieseq,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrctabvieseq,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rctabvieseq = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlTABLES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlTABLES;
----- END Cursor TABLES
----- Begin Cursor VIEW
XPNMTAB := 'sqlVIEW';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlVIEW;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlVIEW INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlVIEW%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rctabvieseq
INTO Xrctabvieseq
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrctabvieseq,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrctabvieseq,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rctabvieseq = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlVIEW INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlVIEW;
----- END Cursor VIEW
----- Begin Cursor MVIEW (O uso deste cursor pode ser dispensado quando TABLES o contiver)
XPNMTAB := 'sqlMVIEW';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlMVIEW;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlMVIEW INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlMVIEW%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rctabvieseq
INTO Xrctabvieseq
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrctabvieseq,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrctabvieseq,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rctabvieseq = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlMVIEW INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlMVIEW;
----- END Cursor MVIEW
----- Begin Cursor sqlSEQUENCES
XPNMTAB := 'sqlSEQUENCES';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlSEQUENCES;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlSEQUENCES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlSEQUENCES%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rctabvieseq
INTO Xrctabvieseq
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrctabvieseq,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrctabvieseq,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rctabvieseq = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlSEQUENCES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlSEQUENCES;
----- END Cursor sqlSEQUENCES
----- Begin Cursor sqlSYNONYMS
XPNMTAB := 'sqlSYNONYMS';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlSYNONYMS;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlSYNONYMS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlSYNONYMS%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcsyn
INTO Xrcsyn
FROM z_java_sql_xref
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcsyn,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcsyn,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcsyn = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlSYNONYMS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlSYNONYMS;
----- END Cursor sqlSYNONYMS
----- Begin Cursor sqlPROCEDURES
XPNMTAB := 'sqlPROCEDURES';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlPROCEDURES;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlPROCEDURES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlPROCEDURES%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcprofun
INTO Xrcprofun
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcprofun,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcprofun,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcprofun = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlPROCEDURES INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlPROCEDURES;
----- END Cursor sqlPROCEDURES
----- Begin Cursor sqlCLAJPA
XPNMTAB := 'sqlCLAJPA';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlCLAJPA;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlCLAJPA INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlCLAJPA%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcclajpa
INTO Xrcclajpa
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,Xrctabvieseq)
OR Z_OK_XNMOBJ(Xdclin,Xrcsyn) THEN
--- Cria o OBJ JPA utilizando a nomenclatura do arquivo
XNMOBJ := UPPER(Z_get_left_tag(z_get_filename(Xnmarqjav),'.'));
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcclajpa,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcclajpa,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcclajpa = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlCLAJPA INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlCLAJPA;
----- END Cursor sqlCLAJPA
----- Begin Cursor sqlCKCLAJPA (Onde a CLAJPA montada anteriormente possui referencia)
XPNMTAB := 'sqlCKCLAJPA';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlCKCLAJPA;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlCKCLAJPA INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlCKCLAJPA%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcclajpa
INTO Xrcclajpa
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcclajpa,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcclajpa,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcclajpa = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlCKCLAJPA INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlCKCLAJPA;
----- END Cursor sqlCKCLAJPA
<<CLASSE>>
----- Begin Cursor sqlCLAACT
XPNMTAB := 'sqlCLAACT';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlCLAACT;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlCLAACT INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlCLAACT%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
XNMOBJ := UPPER(XNMOBJ);
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcclaact
INTO Xrcclaact
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- NÃO Verifica se o OBJ é Realmente Válido
--- === pois, aqui a finalidade é rastrear proximidade (LIKE) com a classe ACTION
--- === além do que, o OBJ POSICIONADO é o ID DA EAP correlacionada a classe ACTION
IF Z_OK_XNMOBJ(XNMOBJ,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcclaact,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcclaact,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcclaact = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlCLAACT INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlCLAACT;
----- END Cursor sqlCLAACT
----- Begin Cursor sqlJPACOMMANDS
XPNMTAB := 'sqlJPACOMMANDS';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlJPACOMMANDS;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlJPACOMMANDS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlJPACOMMANDS%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
XNMOBJ := UPPER(XNMOBJ);
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcsqlcmd
INTO Xrcsqlcmd
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- NÃO Verifica se o OBJ é Realmente Válido
--- === pois, aqui a finalidade é rastrear proximidade (LIKE) com a commands JPA
--- === além do que, o OBJ POSICIONADO é um command SQL
IF Z_OK_XNMOBJ(XNMOBJ,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcsqlcmd,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcsqlcmd,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcsqlcmd = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlJPACOMMANDS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlJPACOMMANDS;
----- END Cursor sqlJPACOMMANDS
----- Begin Cursor sqlCOMMANDS
XPNMTAB := 'sqlCOMMANDS';
XPTAGROWID := null;
XPfetchs := 0;
XPsenha := 'Open ' || XPNMTAB;
OPEN sqlCOMMANDS;
XPsenha := 'First Fetch ' || XPNMTAB;
FETCH sqlCOMMANDS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
XPsenha := 'Question END ' || XPNMTAB;
WHILE sqlCOMMANDS%FOUND LOOP
XPfetchs := XPfetchs + 1;
XPsenha := 'Fetch ' || XPNMTAB || ' ' || XPfetchs;
--- Verifica necessidade de Recuperação Fecth devido a um possível UPDATE
if XPTAGROWID = Xrowid then
XPsenha := 'Select ' || XPNMTAB || ' ' || XPfetchs;
SELECT rcsqlcmd
INTO Xrcsqlcmd
FROM Z_JAVA_SQL_XREF
WHERE ROWID = Xrowid;
end if;
--- Verifica se o OBJ é Realmente Válido
IF Z_OK_XNMOBJ(Xdclin,XNMOBJ) THEN
--- O novo objeto OK, JÁ existindo na(s) SAÍDA(s), ou seja, no(s) XP_já_OUT,
--- significa que NÃO DEVE NOVAMENTE SER ADICIONADO evitando duplicidade.
IF NOT Z_OK_XNMOBJ(Xrcsqlcmd,XNMOBJ) THEN
XP_já_OUT := Z_já_XNMOBJ(Xrcsqlcmd,XNMOBJ);
XPsenha := 'Update ' || XPNMTAB || ' ' || XPfetchs;
UPDATE Z_JAVA_SQL_XREF
SET rcsqlcmd = XP_já_OUT
WHERE ROWID = Xrowid;
END IF;
--- Guarda Rowid para teste de Recuperação Fetch após UPDATE
XPTAGROWID := Xrowid;
END IF;
FETCH sqlCOMMANDS INTO
XNMOBJ
,Xnmarqjav
,Xnrlin
,Xdclin
,Xrctabvieseq
,Xrcprofun
,Xrcsqlcmd
,Xrcsyn
,Xrcclajpa
,Xrcclaact
,Xrowid;
END LOOP;
XPsenha := 'COMMIT ' || XPNMTAB;
COMMIT;
XPsenha := 'Close ' || XPNMTAB;
CLOSE sqlCOMMANDS;
----- END Cursor sqlCOMMANDS
return;
EXCEPTION
WHEN OTHERS THEN
XPSENHA := XPSENHA || sqlerrm;
return;
end;
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Coutinho:
As now only missing the utility, on Desktop, Java to start from the supplied directory (s) Insert all Java fonts (.java; .xml) In the z_java_sql_xref table by feeding the NMARQJAV, NRLIN, and DCLIN columns.
Who knows, can not you confect it?
I attached a series of information about sequential files in ZIP.
A hug,
Renato Viana
As now only missing the utility, on Desktop, Java to start from the supplied directory (s) Insert all Java fonts (.java; .xml) In the z_java_sql_xref table by feeding the NMARQJAV, NRLIN, and DCLIN columns.
Who knows, can not you confect it?
I attached a series of information about sequential files in ZIP.
A hug,
Renato Viana
- Attachments
-
- ORARQSEQ.rar
- (1.18 MiB) Downloaded 980 times
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Coutinho:
I have already made the basic routine below. Then it was just adapting it to welcome names from all .java and .xml files from a directory.
A hug,
Renato Viana
I have already made the basic routine below. Then it was just adapting it to welcome names from all .java and .xml files from a directory.
A hug,
Renato Viana
import java.io.*;
import java.sql.*;
import javax.swing.JOptionPane;
class FileToSQL{
public static void main(String args[]) {
Connection con = null;
try {
//----- Aqui adaptar pro BANCO DE DADOS ------
Class.forName("oracle.jdbc.driver.OracleDriver");
con = DriverManager.getConnection("jdbc:oracle:thin:@192.NNN.NNN.NNN:1521:ID_DO_SEU_BANCO","SEU_USUARIO","SUA_SENHA");
Statement stm = con.createStatement();
//----
// aqui preciso dos nomes completos alimentarem esta classe
String arquivo1 = JOptionPane.showInputDialog("Entre com o nome do Arquivo a ser incluido");
BufferedReader reader = new BufferedReader(new FileReader(arquivo1));
String dados[] = new String[3];
int NRLIN = 0; // number(8) na tabela SQL
// alguma coisa parecida para guardar o nome completo do arquivo para delete e insert
dados[0] = arquivo1;
stm.executeUpdate("delete Z_JAVA_SQL_XREF where NMARQJAV = '"+dados[0]+"' "); // a coluna pkey aqui é o nome do arquivo
String linha = null; // reset na linha
linha = reader.readLine(); // primeiro read da linha
while (linha != null) { // loop leitura das linhas até o fim
// ---- aqui pode fazer todos os tratamentos em cada linha preparando nas colunas da tabela
NRLIN = NRLIN + 1; // é a coluna complemento da PKEY contendo o numero da linha
stm.executeUpdate("insert into Z_JAVA_SQL_XREF (NMARQJAV,NRLIN,DCLIN) values ('"+dados[0]+"','"+NRLIN+"','"+linha+"')"); // inclusões
linha = reader.readLine(); // leitura das demais linhas
}
con.commit(); // ao fim faz commit
System.out.println(arquivo1 + " Arquivo importado");
}
catch (Exception e) {
if (con != null) {
try {
con.rollback(); // aqui se der qualquer problema faz rollback
} catch (SQLException e1) {
e1.printStackTrace();
}
}
System.err.println("Erro: " + e.getMessage());
}
}
}
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Hits the line there with the two below because it appeared "broken" ...
con = DriverManager.getConnection("jdbc:oracle:thin:@192.NNN.NNN.NNN:1521:ID_DO_SEU_BANCO",
"SEU_USUARIO","SUA_SENHA");
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Personnel:
A patch 19/9/2013 "at WHO_JAVA_XREF, or asking on point:
A patch 19/9/2013 "at WHO_JAVA_XREF, or asking on point:
LOOP
XZ_OK_ONDE := INSTR(UPPER(XZ_OK_DCLIN),XZ_OK_XNMOBJ,XZ_OK_ONDE,XZ_OK_VEZ);
IF XZ_OK_ONDE > 0 THEN
IF (XZ_OK_ONDE + XZ_OK_LEN - 1) = XZ_OK_FIM
OR XZ_OK_XNMOBJ || ' ' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '"' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '''' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ',' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ';' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || ')' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '(' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1))
OR XZ_OK_XNMOBJ || '.' = UPPER(SUBSTR(XZ_OK_DCLIN,XZ_OK_ONDE,XZ_OK_LEN + 1)) -- 19/9/2013
THEN
XZ_OK_EXISTE := 1;
RETURN TRUE;
ELSE
XZ_OK_VEZ := 2;
END IF;
ELSE
XZ_OK_EXISTE := 0;
RETURN FALSE;
END IF;
END LOOP;
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Dear:
I attached a "clone" of WHO_JAVA_XREF, WHO_SQL_XREF.
Is now possible a cross-reference of SQL objects on the SQL (procedure, function, function, etc) executable sources, including references to the possible Java code (use of the references generated by WHO_Java_XREF).
A hug,
Renato Viana
I attached a "clone" of WHO_JAVA_XREF, WHO_SQL_XREF.
Is now possible a cross-reference of SQL objects on the SQL (procedure, function, function, etc) executable sources, including references to the possible Java code (use of the references generated by WHO_Java_XREF).
A hug,
Renato Viana
- Attachments
-
- who_sql_xref.zip
- Procedure Referência Cruzada Objetos SQL e JAVA
- (5.16 KiB) Downloaded 986 times
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Personnel:
I attached a zip with any Java fonts by composing the application that uploads the oracle of all Java fonts from an informed directory.
ABS, Renato Viana
I attached a zip with any Java fonts by composing the application that uploads the oracle of all Java fonts from an informed directory.
ABS, Renato Viana
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Personal: there goes the zip.
- Attachments
-
- JavaXref.zip
- Fontes Java UPLOAD no Oracle
- (92.75 KiB) Downloaded 897 times
-
- Rank: Analista Pleno
- Posts: 128
- Joined: Sat, 18 Nov 2006 11:51 am
- Location: Rio de Janeiro - RJ
Personal: Now everything has been improved in the topic below, check out.
http://en.glufke.net/oracle/viewtopic.php?f=2&t=9849
ABS,
Renato Viana https://br.linkedin.com/pub/renato-mene ... 35/573/11b
http://en.glufke.net/oracle/viewtopic.php?f=2&t=9849
ABS,
Renato Viana https://br.linkedin.com/pub/renato-mene ... 35/573/11b
-
- Information
-
Who is online
Users browsing this forum: No registered users and 1 guest