Re: [oracle_br] Java chamando Storeprocedure Oracle (ARRAY)
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)
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
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