Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE PACKAGE "PKG_PERSONA" AS TYPE typ_persona IS RECORD(codigo st_personas.persona.codigo%TYPE, nombre persona.cod_per_1%TYPE);
- TYPE tbl_persona IS TABLE OF typ_persona INDEX BY binary_integer;
- TYPE crs_persona IS REF CURSOR
- RETURN typ_persona;
- END PKG_PERSONA;
- CREATE OR REPLACE PACKAGE BODY "PKG_PERSONA_BODY" AS**
- ------------------------Procedimiento que procesa datos de personas---------
- ----------------------------
- PROCEDURE prc_procesa_datos(pic_persona IN tbl_persona, -- Datos de persona
- pov_error OUT VARCHAR2, -- Variable de retorno de error personalizado
- pov_error_sql OUT VARCHAR2)
- IS
- vrn_registro NUMBER := pic_persona.COUNT;
- BEGIN
- -- Procesa datos de persona
- FOR i IN 1 .. vrn_registro LOOP
- IF pic_persona(i).codigo IS NULL THEN
- -- Ingresa Nuevo
- pkg_persona.prc_inserta (params ..);
- IF pov_error IS NOT NULL THEN
- RETURN;
- END IF;
- -- Fin de ingresa Nuevo
- END IF;
- END LOOP;
- -- Fin de procesa datos de persona
- pov_error:= vrn_registro;
- EXCEPTION
- WHEN OTHERS THEN
- pov_error := 'Ocurrio un error al tratar de ingresar datos de una persona';
- pov_error_sql := 'Error en prc_procesa_datos ' || SQLERRM;
- END;
- END PKG_PERSONA_BODY;
- public static void main(String[] args) {
- try {
- DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
- Connection conn = DriverManager.getConnection(
- "jdbc:oracle:thin:@localhost:1521:sid", "usuario", "claves");
- conn.setAutoCommit(false);
- final StructDescriptor recDescriptor = StructDescriptor.createDescriptor("pkg_persona.typ_persona", conn);
- final ArrayDescriptor arrayDescriptor = ArrayDescriptor.createDescriptor("pkg_persona.tbl_persona", conn);
- CallableStatement stmt = conn.prepareCall("{ call pkg_persona.pkg_persona_body(?) }");
- Object[] array_of_records = new Object[5];
- Object[] java_record_array = new Object[2];
- for (int i = 0; i < 5; i++) {
- java_record_array[0] = "col1";
- java_record_array[1] = "col2";
- STRUCT oracle_record = new STRUCT(recDescriptor, conn, java_record_array);
- array_of_records[i] = oracle_record;
- }
- ARRAY oracle_array = new ARRAY(arrayDescriptor, conn, array_of_records);
- stmt.setObject(1, oracle_array);
- stmt.execute();
- conn.commit();
- } catch (Exception e) {
- System.out.println(e);
- }
- }
- java.sql.SQLException: patrón de nombre no válido: tbl_persona
- final StructDescriptor recDescriptor = StructDescriptor.createDescriptor("pkg_persona.typ_persona", conn);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement