Oracle/wl 6.0sp2 JDBC probs

All
has anyone come got any ideas on this:
WLS6.0 sp2 on Win2k
Oracle v8
JDBC connection pool configured with 10 min connections / 50 max conns (in
increments of 5). Shrinking is active, and is set to run every 15mins.
What were seeing is that Oracle doesnt let go of any of the JDBC
connections. It literally keeps them for days on end, until we have to
manually kill them because theyre causing other DB problems.
any ideas ?
tks
will

Normally you configure timeout on Oracle, so that it will close connections that
are no longer used and set connection polling in WLS. That should be OK.
Will <[email protected]> wrote:
All
has anyone come got any ideas on this:
WLS6.0 sp2 on Win2k
Oracle v8
JDBC connection pool configured with 10 min connections / 50 max conns
(in
increments of 5). Shrinking is active, and is set to run every 15mins.
What were seeing is that Oracle doesnt let go of any of the JDBC
connections. It literally keeps them for days on end, until we have
to
manually kill them because theyre causing other DB problems.
any ideas ?
tks
will

Similar Messages

  • How To Store pdf or doc file in Oracle Database using Java Jdbc?

    can any one help me out How To Store pdf or doc file in Oracle Database using Java Jdbc in JSP/Serlet? i tried like anything. using blob also i tried. but i am able 2 store images in DB not files. please if u know or else if u have some code like this plz send that to me, and help me out plz. i need that urgent.

    Hi.. i am not getting error, But i am not getting the original contents from my file. i am getting all ASCII vales, instead of my original data. here i am including my code.
    for Adding PDF in DB i used image.jsp
    Database table structure (table name. pictures )
    Name Null? Type
    ID NOT NULL NUMBER(11)
    IMAGE BLOB
    <%@ page language="java" import="java.util.*,java.sql.*,java.io.*" pageEncoding="ISO-8859-1"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%
    try{
         Class.forName("oracle.jdbc.driver.OracleDriver");
         Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.135:1521:orcl","scott","tiger");
         PreparedStatement ps,pstmt,psmnt;
         ps = con.prepareStatement("INSERT INTO pictures VALUES(?,?)");
    File file =
    new File("D:/info.pdf");
    FileInputStream fs = new FileInputStream(file);
    ps.setInt(1,4);
    ps.setBinaryStream(2,fs,fs.available());
    int i = ps.executeUpdate();
    if(i!=0){
    out.println("<h2>PDF inserted successfully");
    else{
    out.println("<h2>Problem in image insertion");
    catch(Exception e){
    out.println("<h2>Failed Due To "+e);
    %>
    O/P: PDF inserted successfully
    i tried to display that pdf using servlet. i am giving the code below.
    import java.io.IOException;
    import java.sql.*;
    import java.io.*;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    public class DispPDF extends HttpServlet {
         * The doGet method of the servlet. <br>
         * This method is called when a form has its tag value method equals to get.
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         public void service(HttpServletRequest request, HttpServletResponse response)
                   throws ServletException, IOException {
              //response.setContentType("text/html"); i commented. coz we cant use response two times.
              //PrintWriter out = response.getWriter();
              try{
                   InputStream sPdf;
                   Class.forName("oracle.jdbc.driver.OracleDriver");
                        Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.135:1521:orcl","scott","tiger");
                        PreparedStatement ps,pstmt,psmnt;
                   psmnt = con.prepareStatement("SELECT image FROM pictures WHERE id = ?");
                        psmnt.setString(1, "4"); // here integer number '4' is image id from the table.
                   ResultSet rs = psmnt.executeQuery();
                        if(rs.next()) {
                   byte[] bytearray = new byte[1048576];
                        //out.println(bytearray);
                        int size=0;
                        sPdf = rs.getBinaryStream(1);
                        response.reset();
                        response.setContentType("application/pdf");
                        while((size=sPdf.read(bytearray))!= -1 ){
                        //out.println(size);
                        response.getOutputStream().write(bytearray,0,size);
                   catch(Exception e){
                   System.out.println("Failed Due To "+e);
                        //out.println("<h2>Failed Due To "+e);
              //out.close();
    OP
    PDF-1.4 %âãÏÓ 2 0 obj <>stream xœ+är á26S°00SIá2PÐ5´1ôÝ BÒ¸4Ü2‹ŠKüsSŠSŠS4C²€ê P”kø$V㙂GÒU×713CkW )(Ü endstream endobj 4 0 obj <>>>/MediaBox[0 0 595 842]>> endobj 1 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj xref 0 7 0000000000 65535 f 0000000325 00000 n 0000000015 00000 n 0000000413 00000 n 0000000168 00000 n 0000000464 00000 n 0000000509 00000 n trailer <<01b2fa8b70ac262bfa939cc786f8770c>]/Root 5 0 R/Size 7/Info 6 0 R>> startxref 641 %%EOF
    plz help me out.

  • Oracle 10.1.0 jdbc driver and 9i Database

    Are there any known issues with using the Oracle 10.1.0 jdbc drivers and 9i Database. I was lead to believe that the Jdbc drivers are backward compatible.
    Thanks

    Sorry for not including my error:
    Hello all,
    I am getting an error "Bigger type length than Maximum" when calling a stored procedure that returns a small result set. I am not working with BLOBs or CLOBs and cannot find anything on the web that addresses my specific situation.
    I would greatly appreciate any help available in solving this problem.
    Here is my data access object:
    package my.app.access;
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import oracle.jdbc.OracleTypes;
    import oracle.jdbc.OracleTypes.*;
    import my.app.beans.Person;
    import my.app.util.Database;
    public class PersonAccess {
         public Person getPerson(Person person) throws SQLException, Exception {
              Database db = new Database();
              Connection con = db.connect();
              ResultSet rs;
              CallableStatement cs = con
                        .prepareCall("{call SP_GET_PERSON_BY_USER_ID (?,?)}");
              cs.setString(1, person.getUserId());
              cs.registerOutParameter(2, oracle.jdbc.OracleTypes.CURSOR);
              cs.execute(); // ################### ERROR HAPPENS ON THIS LINE
              rs = (ResultSet) cs.getObject(2);
              if (rs.next() == true) {
                   person.setId(new Integer(rs.getString("id")).intValue());
                   person.setFirstName((String) rs.getString("first_name"));
                   person.setLastname((String) rs.getString("last_name"));
                   person.setPhoneNumber((String) rs.getString("phone_number"));
                   person.setEmailAddress((String) rs.getString("email_addr"));
                   person.setRoleId(new Integer(rs.getInt("role_id")).intValue());
                   //this.roleName = rs.getString("role_name");
                   person.setPassword((String) rs.getString("password"));
                   person.setAgencyId(new Integer(rs.getInt("agency_id")).intValue());
                   if (rs.getString("account_disabled").equals("1"))
                        person.setAccountDisabled(true);
                   if (rs.getString("pwd_change_reqd").equals("0"))
                        person.setPasswordChangeRequired(false);
              return person;
    And here is a test object:
    package my.app.access;
    import my.app.beans.*;
    public class testAccess {
         * @param args
         public static void main(String[] args) {
              // TODO Auto-generated method stub
              PersonAccess pa = new PersonAccess();
              Person person = new Person();
              person.setUserId("jrlaughlin");
              try {
                   pa.getPerson(person);
              } catch (Exception e) {
                   e.printStackTrace();
              System.out.println("done");
    And here is the output from this test app
    java.sql.SQLException: Bigger type length than Maximum
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
         at oracle.jdbc.driver.DatabaseError.check_error(DatabaseError.java:884)
         at oracle.jdbc.driver.T4CMAREngine.buffer2Value(T4CMAREngine.java:2230)
         at oracle.jdbc.driver.T4CMAREngine.unmarshalUB4(T4CMAREngine.java:1146)
         at oracle.jdbc.driver.T4CTTIoac.unmarshal(T4CTTIoac.java:215)
         at oracle.jdbc.driver.T4C8TTIuds.unmarshal(T4C8TTIuds.java:121)
    done
         at oracle.jdbc.driver.T4CTTIdcb.receiveCommon(T4CTTIdcb.java:125)
         at oracle.jdbc.driver.T4CTTIdcb.receiveFromRefCursor(T4CTTIdcb.java:103)
         at oracle.jdbc.driver.T4CResultSetAccessor.unmarshalOneRow(T4CResultSetAccessor.java:165)
         at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:787)
         at oracle.jdbc.driver.T4CTTIrxd.unmarshal(T4CTTIrxd.java:704)
         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:526)
         at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:179)
         at oracle.jdbc.driver.T4CCallableStatement.execute_for_rows(T4CCallableStatement.java:782)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1027)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2887)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:2978)
         at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4102)
         at my.app.access.PersonAccess.getPerson(PersonAccess.java:68)
         at my.app.access.testAccess.main(testAccess.java:17)
    I am only having this problem when using the 10g jdbc driver, 9.2.0.4 and up are fine.
    Thanks again.....

  • Oracle.sql.* with JDBC drivers 8.0.5

    the oracle.sql package is not included in my JDBC driver file classes111.zip given for oracle data server version 8.0.5.
    I would like to use the oracle STRUCT and ARRAY type for calling PL/SQL stored procedures taking STRUCT objects in arguments.
    Are the JDBC drivers 8.1.* compatible with the oracle data server 8.0.5 (if I only use the STRUCT or ARRAY types)? Is it a way for passing ARRAY of VARCHAR2 values to PL/SQL stored procedure with the oracle 8.0.5 JDBC driver?
    thanks

    Unfortunately, these classes (oracle.sql.STRUCT and oracle.sql.ARRAY) are not compatible to 8.0 database. There is server format changes between 8.1 and 8.0, and JDBC driver only supports the 8.1 format.
    Please upgrade your database to 8i.

  • Inserting files in to Oracle 8i database through JDBC - Only 4k data file

    Hi,
    I need to insert a files(images or excel files, doc files etc..) in to oracle 8i database through JDBC program. But i am not able to store more than 4k data files in to files. can any body give me solutions regarding this.
    My code is like this...
    String fileName ="Sample.jpg";
                                  String dataSource = "jdbc/oracle";
                   File file=null;
                   FileInputStream fis = null;
                   Context initCtx=null;
                   DataSource ds = null;
                   Connection con = null;
                   try
                        initCtx = new InitialContext();
                        ds = (DataSource)initCtx.lookup(dataSource);
                        con = ds.getConnection();
                      try
                         file = new File(fileName);
                         fis = new FileInputStream(file);
                        catch(FileNotFoundException fe)
                             out.println("File Not Found");
                                            PreparedStatement pstmt = con.prepareStatement("insert into bfiles values(?,?)");
                        pstmt.setString(1, fileName);
                        pstmt.setBinaryStream(2, fis, (int)file.length());
                        pstmt.executeUpdate();
                        out.println("Inserted");
                        fis.close();
                        pstmt.close();
                        con.close();
                        out.println("closed");
                   catch(Exception e)
                        out.println(e);
               }     in Oracle bi i have created a table like this :
    CREATE TABLE BFILES
      FILENAME     VARCHAR2(100)                    DEFAULT NULL,
      FILECONTENT  BLOB                             DEFAULT EMPTY_BLOB()
    )Please help me ourt to solve this problem.
    i got struck in this problem.
    its urgent
    thanks in advance
    djshivu

    Hi Shanu.
    Thanks for your help...
    By Using THIN driver also we can insert any files more than 4k and and retrive same. Fallowing codes worked fine for me using thin Driver .
    Following are the 2 programs to write and read.
    we can insert and retrieve any format of files ( jpg, gif, doc, xsl, exe, etc...)
    =======================================================
    // Program to insert files in to table
    import oracle.jdbc.driver.*;
    import oracle.sql.*;
    import java.sql.*;
    import java.io.*;
    import java.awt.image.*;
    import java.awt.*;
    * @author  Shivakumar D.J
    * @version
    public class WriteBlob{
    public static void main(String[] args){
    String filename = "018-Annexure-A.xls";
    Connection conn = null;
    try{
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn=DriverManager.getConnection("jdbc:oracle:thin:@test:1521:orcl","modelytics","modelytics");
        conn.setAutoCommit(false);
        Statement st = conn.createStatement();
        int b= st.executeUpdate("insert into bfiles values('"+filename+"', empty_blob())");
        ResultSet rs= st.executeQuery("select * from bfiles for update");
        rs.next();
        BLOB blob=((oracle.jdbc.driver.OracleResultSet)rs).getBLOB(2);
        FileInputStream instream = new FileInputStream(filename);
        OutputStream outstream = blob.getBinaryOutputStream();
        int chunk = blob.getChunkSize();
        byte[] buff = new byte[chunk];
        int le;
        while( (le=instream.read(buff)) !=-1)
            outstream.write(buff,0,le);
        instream.close();
        outstream.close();
        conn.commit();
        conn.close();
        conn = null;
        System.out.println("Inserted.....");
       catch(Exception e){
            System.out.println("exception"+e.getMessage());
            e.printStackTrace();
       }//catch
    }=======================
    // Program to retrieve files from database
    [import java.sql.*;
    import java.io.*;
    import java.awt.*;
    public class ReadImage
    public static void main(String a[])
        String fileName ="018-Annexure-A.xls";
        try
              Driver driver = new oracle.jdbc.driver.OracleDriver();
              DriverManager.registerDriver(driver);
              Connection con = DriverManager.getConnection("jdbc:oracle:thin:@test:1521:orcl", "modelytics", "modelytics");
            File file = new File("C:/Documents and Settings/USERID/Desktop/dump.xls");
              FileOutputStream targetFile=  new FileOutputStream(file); // define the output stream
              PreparedStatement pstmt = con.prepareStatement("select filecontent from bfiles where filename= ?");
              pstmt.setString(1, fileName);
               ResultSet rs = pstmt.executeQuery();
               rs.next();
               InputStream is = rs.getBinaryStream(1);
              byte[] buff = new byte[1024];
               int i = 0;
               while ((i = is.read(buff)) != -1) {
                    targetFile.write(buff, 0, i);
                   System.out.println("Completed...");
            is.close();
            targetFile.close();
            pstmt.close();
           con.close();
        catch(Exception e)
              System.out.println(e);
    }====================
    Table Structure is like this
    CREATE TABLE BFILES
      FILENAME     VARCHAR2(100)                    DEFAULT NULL,
      FILECONTENT  BLOB                             DEFAULT EMPTY_BLOB()
    )========================================================
    i hope above codes will helpful for our future programmers
    thanks shanu...
    regards
    djshivu...(javashivu)

  • Unable to connect to Oracle 8i using the JDBC - OCI8

    I am unable to connect to the to the Oracle 8i database using
    JDBC 8.1.5. er. Each time I try I get the message:
    "java.lang.UnsatisfiedLinkError: no ocijdbc8 in
    java.library.path"
    When I try to establich a "connection" using the connection
    manager with JDeveloper 2.0 I get the message:
    "No ocijdbc8 in shared library path"
    What's the problem? Is it that I do not have the appropriate
    driver? It is unlikely because the thin driver works...
    null

    I dealt with this problem. For some reason OCI drivers
    installation is not included in typiclal Jdev 2.0 instalation.
    (bug?). In your instalation kit find Oracle 8i instalation disk,
    and run the installer on the client machine (i.e. the same
    machine where Jdev is installed where you were not able to
    connect with OCI-8). Choose client installation and choose
    custom installation. Than in the product list choose JDBC
    drivers. Make sure OCI drivers are included. Install it. Now you
    can find file ocijdbc8.dll in your ORACLE_HOME/bin directory.
    Now you should be able to connect using OCI-8.
    Best of luck,
    Michael Gantman
    Preslav Nakov (guest) wrote:
    : I am unable to connect to the to the Oracle 8i database using
    : JDBC 8.1.5. er. Each time I try I get the message:
    : "java.lang.UnsatisfiedLinkError: no ocijdbc8 in
    : java.library.path"
    : When I try to establich a "connection" using the connection
    : manager with JDeveloper 2.0 I get the message:
    : "No ocijdbc8 in shared library path"
    : What's the problem? Is it that I do not have the appropriate
    : driver? It is unlikely because the thin driver works...
    null

  • Can oracle 8.1.6SDK JDBC driver talk to Oracle8.0.5 db?

    Hi,
    Can Oracle 8.1.6SDK JDBC drivers (both thin and OCI) talk to
    Oracle database 8.0.5? My web server and database server sit on
    same machine. Can I have oracle 8.1.6 JDBC driver installed in
    same oracle home directory as oracle8.0.5?
    thanks and regards
    null

    Giorgio Malvestiti (guest) wrote:
    : Lai (guest) wrote:
    : : Hi,
    : : Can Oracle 8.1.6SDK JDBC drivers (both thin and OCI) talk to
    : : Oracle database 8.0.5? My web server and database server
    sit
    : on
    : : same machine. Can I have oracle 8.1.6 JDBC driver installed
    : in
    : : same oracle home directory as oracle8.0.5?
    : : thanks and regards
    : From the FAQ page :
    : Which JDBC drivers support which versions of Oracle database?
    : JDBC 8.0.4 drivers can talk to RDBMS 8.0.4 and 7.3.4.
    : JDBC 8.0.5 drivers can talk to RDBMS 8.0.5, 804 and 7.3.4.
    : JDBC 8.0.6 drivers can talk to RDBMS 8.0.6, 8.0.5, 8.0.4 and
    : 7.3.4.
    : JDBC 8.1.5 drivers can talk to RDBMS 8.1.5, 8.0.6, 8.0.5,
    8.0.4
    : and 7.3.4.
    : JDBC 8.1.6 drivers can talk to RDBMS 8.1.6, 8.1.5, 8.0.6,
    8.0.5,
    : 8.0.4 and 7.3.4.
    : regards
    : giorgio
    Bonjourno,
    What is the URL of this FAQ ? I could not find it.
    Does the above assertions also apply to the JDK 1.2 (thin)
    driver of Oracle 8.1.6 ?
    Otherwise, there is no way to use JDK 1.2 with Oracle 7.3.4.
    Thank you,
    Jean-Pierre
    null

  • Query works in Oracle Client but not JDBC

    The query is as follows:
    SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '15-JAN-01' and '15-JAN-03';When I run this query in the Oracle client (SQL+) it tells me that THE_COUNT is 4 which is correct but when I use the following JDBC code I get THE_COUNT is 0 which is incorrect.
    public ResultSet viewTotalSentOrdersByDate()
      throws SQLException, Exception {
          String beginDate = "15-JAN-01";
          String endDate = "15-JAN-03";
          ResultSet rs = null;
        try  {
          String queryString = ("SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '" + beginDate + "' and '" + endDate + "'");
          System.out.println(queryString);
          Statement stmt = con.createStatement();
          rs = stmt.executeQuery(queryString);
          while(rs.next()) {
           System.out.println(rs.getString("THE_COUNT"))
        } catch (SQLException sqle) {
          error = "SQLException: Could not execute the query.";
          throw new SQLException(error);
        } catch (Exception e) {
          error = "An exception occured.";
          throw new Exception(error);               
        return rs;
      }Thanks for the help
    Zac

    The query is as follows:
    SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '15-JAN-01' and '15-JAN-03';When I run this query in the Oracle client (SQL+) it tells me that THE_COUNT is 4 which is correct but when I use the following JDBC code I get THE_COUNT is 0 which is incorrect.
    public ResultSet viewTotalSentOrdersByDate()
    throws SQLException, Exception {
    String beginDate = "15-JAN-01";
    String endDate = "15-JAN-03";
    ResultSet rs = null;
    try {
    String queryString = ("SELECT COUNT(*) THE_COUNT FROM sentorders WHERE ordersentdate BETWEEN '" + beginDate + "' and '" + endDate + "'");
    System.out.println(queryString);
    Statement stmt = con.createStatement();
    rs = stmt.executeQuery(queryString);
    while(rs.next()) {
    System.out.println(rs.getString("THE_COUNT"))
    } catch (SQLException sqle) {
    error = "SQLException: Could not execute the query.";
    throw new SQLException(error);
    } catch (Exception e) {
    error = "An exception occured.";
    throw new Exception(error);
    return rs;
    }Thanks for the help
    Zac

  • How to use oracle collection type with JDBC?

    I try to use oracle collection type in java program. So I made some package and java program, however Java program was not found "package.collectiontype"(JDBC_ERP_IF_TEST.NUM_ARRAY) . please, show me how to use this.
    Java Version : Java 1.4
    JDBC Driver : Oracle Oci Driver
    DB: Oracle 9i
    No 1. Package
    ===========================================
    create or replace package JDBC_ERP_IF_TEST AS
    type NUM_ARRAY is table of number;
    procedure JDBC_ERP_IF_ARRAY_TEST(P_NUM_ARRAY IN NUM_ARRAY, ERR_NO OUT NUMBER, ERR_TEXT OUT VARCHAR2);
    procedure TEST(ABC IN NUMBER);
    END JDBC_ERP_IF_TEST;
    ==================================================
    No 2. Package Body
    ===============================================
    CREATE OR REPLACE package BODY JDBC_ERP_IF_TEST is
    procedure JDBC_ERP_IF_ARRAY_TEST(p_num_array IN NUM_ARRAY,
    ERR_NO OUT NUMBER,
    ERR_TEXT OUT VARCHAR2) is
    begin
    ERR_NO := 0;
    ERR_TEXT := '';
    dbms_output.enable;
    for i in 1 .. p_num_array.count() loop
    dbms_output.put_line(p_num_array(i));
    insert into emp (empno) values (p_num_array(i));
    commit;
    end loop;
    EXCEPTION
    WHEN OTHERS THEN
    ERR_NO := SQLCODE;
    ERR_TEXT := ERR_TEXT ||
    ' IN JDBC INTERFACE TEST FOR ORACLE ERP OPEN API..';
    ROLLBACK;
    RETURN;
    end JDBC_ERP_IF_ARRAY_TEST;
    procedure TEST(ABC IN NUMBER) IS
    begin
    insert into emp(empno) values (ABC);
    commit;
    end TEST;
    end JDBC_ERP_IF_TEST;
    ===============================================
    NO 3. Java Program
    ===============================================
    ArrayDescriptor descriptor = ArrayDescriptor.createDescriptor("JDBC_ERP_IF_TEST.NUM_ARRAY", getConnection());
    ARRAY array = new ARRAY(descriptor, getConnection(), arrs);
    cstmt = getConnection().prepareCall(LQueryFactory.getInstance().get("Meta/Basic/testJdbcErpArrayIf").getSql());
    cstmt.setArray(1, array);
    cstmt.registerOutParameter(2, Types.INTEGER);
    cstmt.registerOutParameter(3, Types.VARCHAR);
    ====================================================
    couldn't find this phase => JDBC_ERP_IF_TEST.NUM_ARRAY
    what can i do for this package and program? please help me..

    Something like this:
    create or replace type t_record as  object (
    id number,
    no number
    CREATE or replace type t_table AS TABLE OF t_record;
    set serveroutput on
    declare
      v_table t_table := t_table();
      v_t1 t_table := t_table();
    begin
      v_table.extend(1);
      v_table(1).ID := 1;
      v_table(1).No := 10;
      v_table.extend(1);
      v_table(2).ID := 2;
      v_table(2).ID := 20;
      SELEC t_record (ID,NO) BULK COLLECT INTO v_t1
      from TableA
      FROM TABLEA
      WHERE ID IN (select t.ID from table(v_Table) t);
      for i in 1..v_t1.count loop
        dbms_output.put_line(v_t1(i).ID);
        dbms_output.put_line(v_t1(i).No);
      end loop;
    end;
    /Untested!
    P;
    Edited by: bluefrog on Mar 5, 2010 5:08 PM

  • Oracle 8.1.5 JDBC driver problem with LONGVARCHAR

    Hi, I'm having problem with 8.1.5 release on Solaris with the
    JDBC type 4 driver (thin). If I create the following table
    create table test1 (col1 NUMBER, col2 LONG);
    Using JDBC driver to insert into the second column any string
    longer than 4000 characters causing run time exception. The type2
    driver works fine, but type2 is slow.
    String sql = "insert into test1 (col1, col2) values (1099,?)";
    PreparedStatement stmt ;
    stmt = conn.prepareStatement(sql);
    // create a string with very long value , bigger than 4096
    stmt.setString(1,string);
    stmt.executeUpdate();
    runtime exception:
    java.sql.SQLException: Data size bigger than max size for this
    type
    at java.lang.Throwable.<init>(Compiled Code)
    at java.lang.Exception.<init>(Compiled Code)
    at java.sql.SQLException.<init>(Compiled Code)
    at oracle.jdbc.dbaccess.DBError.check_error(Compiled
    Code)
    at oracle.jdbc.ttc7.TTCItem.setArrayData(Compiled Code)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setItem(Compiled Code)
    at
    oracle.jdbc.driver.OraclePreparedStatement.setString(Compiled
    Code)
    at testi.main(Compiled Code)
    Any help is appreciated.
    Thanks
    Steve
    null

    Post the full stacktrace here
    Also you might want to post jdbc related questions to weblogic.developer.
    interest.jdbc
    Kumar
    DreamNEON wrote:
    Hello,
    the NSAPI integration works, also the JSP files.
    But I have still problems with the Jdriver for my Oracle 8.1.5.
    I get the message :
    Failed to invoke startup class
    weblogic.jdbc.common.internal.JdbcStartup=weblogic.jdbc.common.internal.JdbcStartup
    when the WebLogic Server is started.
    Any ideas or hints about that?
    Thanks in advance
    Armin

  • Oracle 8.1.5 - jdbc driver problem

    I am using Oracle8.1.5 (personal oracle) for database. I am trying to retrieve the data from JAVA(JDK 1.3). I use the following driver and its manager in the Java program:-
    DriverManager.registerDriver(new Oracle.jdbc.driver.OracleDriver());
    Class.forName("Oracle.jdbc.driver.OracleDriver");
    However Java is not getting compiled with the following error message:-
    Cannot resolve symbol:
    package: driver
    class: DriverManager
    I would request your goodselves to help me out. Thank you in anticipation.
    Regards,
    Sivaswamy

    Thanks for the reply.
    Have you tried manually taking the current time and
    converting it to the way Oracle is expecting it? If I embed a TO_DATE and format it, it works fine, but I want to stay database independent. Is that want you mean?
    Or how about using new java.util.Date() to get the
    current date?Not sure I follow you:
    --- insertStmt.setTimestamp(5, new java.sql.Date(System.currentTimeMillis()));
    Gives an error since setTimestamp expects a java.sql.Timestamp and
    --- insertStmt.setDate(5, new java.sql.Date(System.currentTimeMillis()));
    Only stores the date without the time.
    Thanks again,
    Todd

  • Calling Stored Procedure from Oracle DataBase using Sender JDBC (JDBC-JMS)

    Hi All,
    We have requirement to move the data from Database to Queue (Interface Flow: JDBC -> JMS).
    Database is Oracle.
    *Based on Event, data will be triggered into two tables: XX & YY. This event occurs twice daily.
    Take one field: 'aa' in XX and compare it with the field: 'pp' in YY.
    If both are equal, then
         if the field: 'qq' in YY table equals to "Add" then take the data from the view table: 'Add_View'.
         else  if the field: 'qq' in YY table equals to "Modify"  then take the data from the view table: 'Modify_View'.
    Finally, We need to archive the selected data from the respective view table.*
    From each table, data will come differently, means with different field names.
    I thought of call Stored Procedure from Sender JDBC Adapter for the above requirement.
    But I heard that, we cannot call stored procedure in Oracle through Sender JDBC as it returns Cursor instead of ResultSet.
    Is there any way other than Stored Procedure?
    How to handle Data Types as data is coming from two different tables?
    Can we create one data type for two tables?
    Is BPM required for this to collect data from two different tables?
    Can somebody guide me on how to handle this?
    Waiting eagerly for help which will be rewarded.
    Thanks and Regards,
    Jyothirmayi.

    Hi Gopal,
    Thank you for your reply.
    >Is there any way other than Stored Procedure?
    Can you try configuring sender adapter to poll the data in intervals. You can configure Automatic TIme planning (ATP) in the sender jdbc channel.
    I need to select the data from different tables based on some conditions. Let me simplify that.
    Suppose Table1 contains 'n' no of rows. For each row, I need to test two conditions where only one condition will be satisfied. If 1st condition is satisfied, then data needs to be taken from Table2 else data needs to be taken from Table3.
    How can we meet this by configuring sender adapter with ATP?
    ================================================================================================
    >How to handle Data Types as data is coming from two different tables?
    If you use join query in the select statement field of the channel then whatever you need select fields will be returned. This might be fields of two tables. your datatype fields are combination of two diff table.
    we need to take data only from one table at a time. It is not join of two tables.
    ================================================================================================
    Thanks,
    Jyothirmayi.

  • ERROR IN ORACLE STORED PROCEDURE in JDBC RECIEVER

    Hi all
    i have an FILE2JDBC2FILE sync scenario.have configured this w/o BPM.i need to call an stored procedure which will return me the output in the outpur parameters.input out put parametrs of the stored procedure are.
         p_api_version               IN  NUMBER
        ,p_init_msg_list             IN  NUMBER DEFAULT EBS_ECOM_UTILS_PUB.G_TRUE
        ,p_ebs_place_in_t     IN  p_ebs_place_in_t(sql TABLE TYPE )
        ,p_ebs_std_call_o     IN  ebs_std_call_oty(sql TABLE TYPE )
        ,x_return_status            OUT VARCHAR2
        ,x_msg_count                OUT NUMBER
        ,x_msg_data                 OUT ebs_message_tty
        ,x_row_count                OUT NUMBER
        ,x_ebs_place_out_t      OUT ebs_place_out_toty(sql TABLE TYPE );
    where
    p_ebs_place_in_t is of type p_ebs_place_in_t which has 2 fields MDM_SYSTEM_REF,EMAIL_ADDR and START_DATE
    p_ebs_std_call_o is of table type ebs_std_call_oty which has 2 fields WORK_GRP_ID and  DEBUG_MODE 
    In XI i am passing the arguments in the following fashion to ORACLE (JDBC reciever adapter)
    <p_api_version isInput="true" type="integer">1</p_api_version>
    <p_init_msg_list isInput="true" type="integer">1</p_init_msg_list>
    <p_ebs_place_in_t isInput="true" type="CHAR">
    <MDM_SYSTEM_REF isInput="true" type="CHAR">MDM-237</MDM_SYSTEM_REF>( this is a field in p_ebs_place_in_t )
    <EMAIL_ADDR isInput="true" type="CHAR"></EMAIL_ADDR>>(this is a field in p_ebs_place_in_t )
    <START_DATE isInput="true" type="date"/>06-OCT-2009 00:00:00</START_DATE>>(this is a field in p_ebs_place_in_t )
    </p_ebs_place_in_t>
    <p_ebs_std_call_o isInput="true" type="CHAR">
    <WORK_GRP_ID isInput="true" type="integer">95714</WORK_GRP_ID>
    <DEBUG_MODE isInput="true" type="integer">5</DEBUG_MODE>
    </p_ebs_std_call_o>
    <x_return_status isOutput="true" type="CHAR"></x_return_status>
    <x_msg_count isOutput="true" type="integer"></x_msg_count>
    <x_msg_data isOutput="true" type="CHAR"></x_msg_data>
    <x_row_count isOutput="true" type="integer"></x_row_count>
    <x_ebs_place_out_t isOutput="true" type="CHAR">
    </x_ebs_place_out_t>
    i am gettng the below error when i am trying to post th message from RWB
    Error when executing statement for table/stored proc. 'APPS.EBS_CUSTOMER_SERVICE_PUB.MAINTAIN_PLACE' (structure 'StatementName1'): java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'MAINTAIN_PLACE' ORA-06550: line 1, column 7: PL/SQL: Statement ignored .
    please suggest..
    Edited by: Rohan Patil on Jun 13, 2010 12:55 AM

    HI Praveen,
    thanks for your reply.
    my stored procedure has input and output parameters both.
    and in XI i have created the data type for both isInput(passedwith all the required values) and isOutput(passed the null values)
    is this  correct..?or should i take only isInput parameters in the data type?
    do i need to take the isOutput also in the datatype?my stored procedure will return the output in the output parametrs.
    can i take only 1 or 2 output paraetrs as there are 4 to 5 output parameters for my sotred procedure.?
    and how will my response data type to send the output of the stored procedure to the FILE sustem.should it be also in the statement form?
    and also would like to know..some of my isInput parameters to the stored procedure has the table type structure as the input parameters.now my question is i should i declare them in my data type?
    can you please elaborate.

  • Passing XMLType Data into oracle stored procedure using JDBC

    Hi Friends,
    I have requirement where my oracle stored procedure accepts XML file as an input. This XML File is generated in runtime using java, I need to pass that xml file using JDBC to oracle stored procedure. Please let me know the fesibile solution for this problem.
    Following are the environment details
    JDK Version: 1.6
    Oracle: 10g
    Server: Tomcat 6.x
    Thanks in Advance

    user4898687 wrote:
    I have requirement where my oracle stored procedure accepts XML file as an input. This XML File is generated in runtime using java, I need to pass that xml file using JDBC to oracle stored procedure. Please let me know the fesibile solution for this problem.As stated - no.
    A 'file' is a file system entity. There is no way to pass a 'file' anywhere. Not PL/SQL. Not java.
    Now you can pass a file path (a string) in java and to PL/SQL.
    Or you can pass xml data (a string) in java and to PL/SQL. For PL/SQL you could use eithe a varchar2, if the xml is rather small, or a blob/clob.

  • Can't execute Oracle Stored Procedure using JDBC

    Hi all,
    I'm fairly new to JDBC and Oracle, so pardon my ignorance/lack of knowledge in this subject matter. I am trying to call a stored procedure named get_countries that has no parameters using JDBC. I do this by executing the following lines of code:
    CallableStatement cs = con.prepareCall("{call get_countries}");
    ResultSet rs = cs.executeQuery();But I get the following exception thrown:
    Exception in thread "main" java.sql.SQLException: ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'GET_COUNTRIES'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    at oracle.jdbc.driver.DatabaseError.throwSqlException(_DatabaseError.java:112_)
    at oracle.jdbc.driver.T4CTTIoer.processError(_T4CTTIoer.java:331_)
    at oracle.jdbc.driver.T4CTTIoer.processError(_T4CTTIoer.java:288_)
    at oracle.jdbc.driver.T4C8Oall.receive(_T4C8Oall.java:745_)
    at oracle.jdbc.driver.T4CCallableStatement.doOall8(_T4CCallableStatement.java:218_)
    at oracle.jdbc.driver.T4CCallableStatement.executeForRows(_T4CCallableStatement.java:969_)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(_OracleStatement.java:1190_)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(_OraclePreparedStatement.java:3370_)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(_OraclePreparedStatement.java:3415_)
    at JDBCTest.main(_JDBCTest.java:44_)
    This makes no sense to me because there are no parameters that I need to pass. So I'm guessing this is something that I don't know about JDBC or about Oracle. I've searched Google for the past hour and a half and still haven't found anything that explains what might be the problem. I've also been following this guide ([http://java.sun.com/docs/books/tutorial/jdbc/basics/sql.html]) and I'm doing it exactly the same way, but for some reason it works for them.
    Anyone know what I'm doing wrong?
    Thanks for your help in advance. I really appreciate it!

    I went to a few forums and asked the same question. The boys down at Oracle Community Forums shed some light on this subject and, with their help, I was able to figure it out. Here is the thread for those who want to read: [My Thread @ Oracle Community Forums|http://forums.oracle.com/forums/thread.jspa?messageID=2721348?].
    THE SOLUTION
    cs = con.prepareCall("{ call get_countries(?) }");
    cs.registerOutParameter(1, OracleTypes.CURSOR);
    cs.execute();
    ResultSet rs = ((OracleCallableStatement) cs).getCursor(1);

Maybe you are looking for

  • How do i place multiple items at once in my order?

    i've created several cards and a book, but the option to buy is only 1 item at a time

  • Help with two columns

    So I have two columns on my page and when I type the left column spills over into the right column. But this is not what I want to happen. I want the text that I type on the left to stay on the left and the text on the right to stay on the right. Ple

  • 42HL833B - How to change system time for Australia

    I have a Toshiba 42HL833B that I brought back with me to Australia from the UK. Everything works OK other than the system time still indicates UK time. Australia does not come up as a Country option in setup so I have chosen "Other". There does not a

  • Outofmemory excption

    HI all, What is the maximus size can an Array list hold. Problem is like this : Trying to iterate result set containing say 1467888 records and add then to the Array list. This is case i am getting error not oftenly...... what might be the problem. U

  • Dreamweaver 8 Recipes

    Hi I cannot find a snippet: in Recipes > UserLogin > Wireframes > UserLogin - Wireframe How tonight I've read and looked again and again through page 51 of the Dreamweaver 8 recipes, in the book and around the CD-ROM. Just recently I found a Note Tab