Re: [oracle_br] Java chamando Storeprocedure Oracle (ARRAY)

2006-06-30 Por tôpico clediomar
Valeu Rafael,

Para 10g funciona beleza. Desculpe, não ter colocado que já havia 
realizado em 10g.

Ocorre que o banco de dados é 7.3.
Devido a uma aplicação proprietária o banco não pode ser migrado para 
outra versão. Estamos desenvolvendo outra aplicação em Java (justamente 
pela ind. plataforma) e depois migraremos o banco. até lá teremos que 
utilizar o 7.3

ocorre que a aplicação (proprietária) é em c++ e acessa os package 
normalmente como citado. porém o java Não acessa.
já vasculhei os CDRom do Oracle Server 7.3 e Cliente em busca de alguma 
coisa e nada.

mais uma vez, obrigado.

CLS.

Rafael Uchôa escreveu:

O driver java que chama ARRAY no banco nao reconhece tipos definidos  
dentro de package, vc terá que definir os tipos debaixo do owner, ou seja,

Ao inves de:

package pkg_algumacoisa as

  type tipo_X table blahblah..




Assim:

 create type tipo_x table of blahblah...


e no Java, criar o Descriptor:


OUT:

   OracleCallableStatement ocs =  
(OracleCallableStatement)conneection.prepareCall({call  
pkg_algumacoisa.procedure_tal{?)});
   ArrayDescriptor descricaoArray =  
ArrayDescriptor.createDescriptor(DONODOTIPO.TIPO_X,connection);
   ARRAY arrayOUT = new ARRAY(descricaoArray,connection,arrayJava);
   ocs.registerOutParameter(1,OracleTypes.ARRAY,DONODOTIPO.TIPO_X);


IN:

  OracleCallableStatement ocs =  
(OracleCallableStatement)connection.prepareCall({call  
pkg_algumacoisa.procedure_tal(?)});
  ArrayDescriptor descricaoArray =  
ArrayDescriptor.createDescriptor(DONODOTIPO.TIPO_X,connection);
  ARRAY arrayIN = new ARRAY(descricaoArray,connection,arrayJava);
  ocs.setARRAY(1,arrayIN);


Aqui na empresa, eu coloquei as chamadas de pkg em umas classes que o cara  
so passa os parametros necessarios, e o cara nao precisa saber que existe  
esse babado todo pra enviar um array, mas com esse codigo ai em cima ja  
dá pra resolver teu problema.


On Thu, 29 Jun 2006 20:49:06 -0300, clediomar [EMAIL PROTECTED] wrote:

  



  




--
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--__

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html

 





[oracle_br] Java chamando Storeprocedure Oracle (ARRAY)

2006-06-29 Por tôpico clediomar
Boa noite.

Tenho o package abaixo com duas procedure que utilizam parametros ARRAY. 
Já tentei executar estas procedures via Java, mas dar ERRO. Alguém sabe 
e ou tem algun exemplo de como executar este tipo de procedure via Java ?

Fiz até uma versão menor (menos complexa - use_aa use( registros in vtab 
)) mas mesmo assim não dar certo.


CREATE OR REPLACE
PACKAGE pk_InsPost AS
-- General type declaration
TYPE cursor_id_artyp IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
TYPE event_itemcode_artyp IS TABLE OF VARCHAR2(13) INDEX BY 
BINARY_INTEGER;
TYPE event_createtime_artyp IS TABLE OF VARCHAR2(14) INDEX BY 
BINARY_INTEGER;
TYPE event_hitunitcep_artyp IS TABLE OF VARCHAR2(8) INDEX BY 
BINARY_INTEGER;
TYPE event_userid_artyp IS TABLE OF VARCHAR2(8) INDEX BY 
BINARY_INTEGER;
TYPE event_wst_artyp IS TABLE OF VARCHAR2(3) INDEX BY 
BINARY_INTEGER;
TYPE vtab IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
PROCEDURE use_aaa;
PROCEDURE use_aa(registros in vtab);
-- a) Insertion's procedure
PROCEDURE InsIsnd_p1
  (
nb_ligne IN NUMBER,
event_code IN VARCHAR2,
event_unitcep IN VARCHAR2,
event_itemcode IN event_itemcode_artyp,
event_createtime IN event_createtime_artyp,
event_hitunitcep IN event_hitunitcep_artyp,
event_userid IN event_userid_artyp,
event_wst IN event_wst_artyp
  );
END pk_InsPost;
/



CREATE OR REPLACE
PACKAGE BODY pk_InsPost AS
-- a) Insertion's procedure
PROCEDURE InsIsnd_p1
  (
nb_ligne IN NUMBER,
event_code IN VARCHAR2,
event_unitcep IN VARCHAR2,
event_itemcode IN event_itemcode_artyp,
event_createtime IN event_createtime_artyp,
event_hitunitcep IN event_hitunitcep_artyp,
event_userid IN event_userid_artyp,
event_wst IN event_wst_artyp
  ) IS
i   NUMBER := 1;
increment   NUMBER(5) := 0;
rows_processed  NUMBER;
cde_ins_evt VARCHAR2(1024);
event_recordid  NUMBER(10);
cursor_id   cursor_id_artyp;
err_cod VARCHAR2(3);
err_msg VARCHAR2(3);
err_lig NUMBER;

BEGIN
cursor_id(1) := 10;
err_cod := '';
err_msg := 'No error';
err_lig := 0;
-- First step
IF cursor_id(1) = 10 OR cursor_id(1) = 11 THEN
-- Open cursors
cursor_id(2) := DBMS_SQL.OPEN_CURSOR;
-- Request construction
cde_ins_evt := 'INSERT INTO EVENT (EVT_ITEMCODE, EVT_INSERTTIME, 
EVT_CODE, EVT_CREATETIME, EVT_UNITCEP, EVT_WSNUMBER, '
|| 'EVT_RECORDTYPE, EVT_RECEPTACLE, 
EVT_HITUNITCEP, EVT_USERID, EVT_RECORDID) '
|| 'VALUES (:v1, :v2, :v3, :v4, :v5, :v6, :v7, :v8, 
:v9, :v10, :v11)';
-- Parsing the request
DBMS_SQL.PARSE(cursor_id(2), cde_ins_evt, DBMS_SQL.NATIVE);
-- Assignement's function of the computer key
event_recordid := pk_CommonTools.GetUniqueKey('evt_01');
-- Binding the variables
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v3', event_code);
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v5', event_unitcep);
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v7', 0);
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v8', '');
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v11', event_recordid);
END IF;
WHILE i = nb_ligne LOOP
-- Binding the variables
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v1', event_itemcode(i));
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v4', 
TO_DATE(event_createtime(i), 'DDMMHH24MISS'));
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v6', event_wst(i));
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v9', event_hitunitcep(i));
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v10', event_userid(i));
LOOP
BEGIN
-- Binding the variables
DBMS_SQL.BIND_VARIABLE(cursor_id(2), ':v2', 
TO_DATE(LPAD(TO_CHAR(sysdate, 'DDS')+increment, 7, 0), 'DDS'));
-- Executing the SQL request
rows_processed := DBMS_SQL.EXECUTE(cursor_id(2));
EXIT;
EXCEPTION
WHEN OTHERS THEN
-- Primary key constraint violated --
IF sqlcode=-1 AND INSTR(sqlerrm, 'PK_')0 THEN
increment := increment + 
pk_CommonTools.IncrementValue;
-- Seconds in day must be between 0 and 86399 --
ELSIF sqlcode=-1853 THEN
increment := 0;
ELSE
RAISE_APPLICATION_ERROR(-20100, 
to_char(increment) || '::' || sqlerrm);
END IF;
END;
END LOOP;
i := i + 1;
END LOOP;
-- Close cursors if the current step is the 

Re: [oracle_br] Trigger mutante

2005-09-29 Por tôpico clediomar
Manda, bala.

CD
Rodolfo Nunez escreveu:

Opa Eu criei uma JProcedure para resolver o meu problema se quiser te passso
em private.

Abs,
Rodolfo

On 9/21/05, clediomar [EMAIL PROTECTED] wrote:
  

Alguém utiliza chave gerada com MD5 no Oracle.

existe algum package, função etc.

tipo MySQL select MD5(BLABALALA)


ORACLE_BR APOIA 2ºENPO-BR
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e
Cases dirigidos exclusivamente por profissionais especialistas e renomados
no mercado. Confira a programação no site do evento!
http://www.enpo-br.org/
_

Links do Yahoo! Grupos












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



ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 
05/11/2005 no auditório da FIAP em São Paulo. Serão apresentadas Palestras e 
Cases dirigidos exclusivamente por profissionais especialistas e renomados no 
mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
 
Links do Yahoo! Grupos




 




  




ORACLE_BR APOIA 2ºENPO-BR 
_
O 2º Encontro Nacional de Profissionais Oracle será realizado no dia 05/11/2005 
no auditório da FIAP em São Paulo. Serão apresentadas Palestras e Cases 
dirigidos exclusivamente por profissionais especialistas e renomados no 
mercado. Confira a programação no site do evento! http://www.enpo-br.org/
_
 
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/oracle_br/

* Para sair deste grupo, envie um e-mail para:
[EMAIL PROTECTED]

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html